【VB】StrConv函数

StrConv(string, conversion, LCID)

vbUnicode

64

根据系统的缺省码页将字符串转成Unicode。

vbFromUnicode

128

将字符串由 Unicode 转成系统的缺省码页。

Windows系统对字符采用了DBCS编码,它是一套单字节和双字节的混合编码,即西文与ASCII编码一样,是单字节;中文则以两字节编码。

而StrConv()函数的作用就是作为Unicode与DBCS之间的转换。

bytes_Ansi()=StrConv("a啊b",vbFromUnicode)         '61 B0 A1 62

就是将Unicode码(VB缺省String类型)"a啊b"字符串转为DBCS码(转换成Ansi编码的串)

String1=StrConv(Bytes_Ansi(),vbUnicode)         '61 0 4A 55 62 0

将DBCS(即Ansi格式的数组)转为Unicode字符串(String)。

转换过程可以用LenB函数进行验证

由于VB中字符串均用二字节的Unicode表示,在进行文本文件读写时,会自动将String转换为合适的系统DBCS编码,无需专门的转换,但在Open语句Binary读写时,作者需先转换好。如在读写UTF8编码格式的文本文件时,必须使用Binary格式来读写。而一般的Unicode格式和Ansi格式文件,则不需要。

而通常的Bytes()与String间转换可直接赋值,应为

Dim bytes() as Byte,Str1 as string

str1="a啊b"     或 bytes=str1亦可

bytes=str1 即'61 0 4A 55 62 0,自动完成了转换

05-06 14:05