作者MOONRAKER (㊣秘密情报员)
看板Visual_Basic
标题Re: [VB6 ] 请问LeftB函数
时间Tue Jun 17 19:02:45 2014
※ 引述《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://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1403002970.A.386.html
1F:推 finaldeath:结果跑起来英文字真的被当成长度2 06/18 10:13
2F:→ finaldeath:用奇数跑,英文字会被截成乱码... 06/18 10:13
3F:→ EShensh:可能 Windows 系统核心不同吧,早期的 Win 不是 Unicode 06/19 15:06
4F:→ EShensh:所以不建议这样的写法,应该要确认要处理编码比较好。 06/19 15:07
5F:→ EShensh:不然在不同环境可能出来的结果不一样。 06/19 15:07
6F:→ MOONRAKER:UTF-16就是unicode, 原汁原味,哪有什麽不是unicode的 06/20 00:19
7F:→ MOONRAKER:问题。这一个problem果然钓出各式各样的「好手」,科 06/20 00:21