【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,自动完成了转换