如何richtextbox把中文字符当2个字符处理?

aydgeLee 2001-12-15 04:14:36
使用查找方法时,若是中文,在定位查找起点时使用当前光标位置.selstart
但中文返回的index值显然只有.find方法需求的一半,如何解决?
或有啥方法使vb把中文字符当成两个字符?
请教请教
...全文
54 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
red_bat 2002-03-08
  • 打赏
  • 举报
回复
这要用到StrConv函数,StrConv 函数的语法为:
StrConv(待转换字串, 转换格式)
其中转换格式在这里用到的是:
vbUnicode 将 Ansi 字串转换为 Unicode
vbFromUnicode 将 Unicode 字串转换为 Ansi
将字串转成 Ansi 之後,所有的字串处理指令都要加个 B,例如:LeftB, RightB, MidB, ChrB, InstrB, LenB, InputB 等。例用这些指令来处理就行了。
当你处理完毕之后,你可以再将它再转回 Unicode,这样就可以使用一般的字串处理 指令了。
这样讲看得懂吗?如果还是不了解,看看下面的实例说明:

Private Sub Command1_Click ()
Dim sUnicode As String
Dim sAnsi As String

' Unicode 运算
sUnicode = "王小明,A123456789,651023,台北市中山路100号,(02)2345678"
Debug.Print Len(sUnicode) ' 传回 44

' 将 Unicode 字串转成 Ansi
sAnsi = StrConv(sUnicode, vbFromUnicode)
' Ansi 运算
Debug.Print LenB(sAnsi) ' 传回 54
End Sub
怎么样,懂了吗?
xsp 2002-01-17
  • 打赏
  • 举报
回复
自己计算,以pos 为当前光标的位置。
选取从开头到当前光标位置的所有文字,逐一判断(汉字的ascii码为负值),若是汉字则pos=pos+2 否则pos=pos+1

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧