VB中的Unicode和Ansi格式,第1张

VB中的Unicode和Ansi格式,第2张

VisualBasic32位版本的字符串处理采用Unicode,也就是说在VB中字符串是以Unicode的格式存储的。什么是Unicode?简单来说,每个字符都用2字节的形式表示,每个“物理字符”都是一个“字符”。所以
Len("大家好")
Len("abc")
返回的值都是3,因为" big "和" a "都是一个字符。

然而,这对于一些中文字符串处理来说是一场灾难,比如纯文本数据文件,因为你必须以字节为单位定位每个字符,但Unicode却搞乱了所有的处理。例如,
Len("GoodMorning ")返回12,而
Len("今天天气不错")返回6。

对于新手来说,用VB写程序是一件很棒的事情,但是在中文处理上立马挨了一记闷棍,真的是很大的打击。但是不要害怕。其实只要多了解指令,就能解决中文处理的问题。

指令是什么?最重要的是StrConv。StrConv函数的语法是StrConv(要转换的字符串,转换格式)
这里使用的转换格式:
vbUnicode将Ansi字符串转换为Unicode
vbfromnicode将Unicode字符串转换为Ansi
在将string转换为Ansi后,的所有字符串处理指令都必须加一个B,例如:leftb、rightb、
midb、chrb、instrb、lenb、input b等。就用这些说明来处理吧。

完成处理后,可以将其转换回Unicode,这样就可以使用一般的字符串处理指令。你能理解这个吗?如果还不明白,看下面的例子:
简单使用例子
看下面的基本例子,你应该对VB字符串处理有所了解了。

private command 1 _ click()
dimsunicodeastring
dimsansiastring
' Unicode操作
sUnicode= "上海市中山路100号王小明,A123456789,651023,(02)2345678 "
Debug . print len(Unicode)'返回44
Debug . print mid $(Unicode,5,10)'返回a 123455PrintLenB(sAnsi)'返回54
debug。????,因为忘记切换回Unicode
debug . print strConv(midb $(Sansi,8,10),VB Unicode)'并返回A123456789。请注意,切换回Unicode的操作必须完成。

Debug.printinstrb (Sansi,strConv ("Shanghai ",vbFromUnicode))'返回23,不要忘记将" Shanghai "转换成ansi,否则你不会找到
EndSub
读入文本文件
在VB的提示中,有一个快速的文件读取方法:
private子命令1 _ click()
dimsfilesstring
open " c:\ filename . txt " for inputas # 1[/br

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VB中的Unicode和Ansi格式

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情