Re: [VB6 ] 請問LeftB函數

看板Visual_Basic作者 (㊣祕密情報員)時間11年前 (2014/06/17 19:02), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《finaldeath (<( ̄口 ̄)_且)》之銘言: : A,B為英文字長度應為1 : 國為中文字長度應為2 : 但結果看起來是中英文字長度都變成2了 : : 請問是我理解錯誤嗎? : 還是我有哪邊設定錯誤了。 : : 謝謝大家! : : → KawasumiMai:你的AB兩字是全形嗎? 06/17 18:52 跟全形沒關係。原po可以試跑以下測試程式看看結果。 Sub leftbtest_host() ss = leftbtest("Bolshevik") ss = ss & leftbtest("AB漢字") MsgBox ss End Sub Function leftbtest(s) As String ss = "" k = 2 For i = 0 To LenB(s) Step k c = LeftB(s, i) ss = ss & "[" & i & "]: " & c & vbCrLf Next i leftbtest = ss End Function 如果這樣可以輸出看起來正常的結果(人看得懂),可以把k改為1或3看看。   -- 從前有個馬鈴薯王國 有個高貴偉大的國王 有的人尊敬他 有的人畏懼他 但有個人敢看不起他不只是一條龍 嘿呵 快出動 去征服 去擺平 嘿呵 快出征 去征服那條龍 嘿呵 快出動(宰了它!轟了它!)嘿呵 快出征 去征服那條龍 :■ Potatoes and Dragons (C)Alphanim France 2004-05 :. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.43.189 ※ 文章網址: http://www.ptt.cc/bbs/Visual_Basic/M.1403002970.A.386.html

06/18 10:13, , 1F
結果跑起來英文字真的被當成長度2
06/18 10:13, 1F

06/18 10:13, , 2F
用奇數跑,英文字會被截成亂碼...
06/18 10:13, 2F

06/19 15:06, , 3F
可能 Windows 系統核心不同吧,早期的 Win 不是 Unicode
06/19 15:06, 3F

06/19 15:07, , 4F
所以不建議這樣的寫法,應該要確認要處理編碼比較好。
06/19 15:07, 4F

06/19 15:07, , 5F
不然在不同環境可能出來的結果不一樣。
06/19 15:07, 5F

06/20 00:19, , 6F
UTF-16就是unicode, 原汁原味,哪有什麼不是unicode的
06/20 00:19, 6F

06/20 00:21, , 7F
問題。這一個problem果然釣出各式各樣的「好手」,科
06/20 00:21, 7F
文章代碼(AID): #1Je21QE6 (Visual_Basic)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Je21QE6 (Visual_Basic)