天天看点

vb字符串和字节数组转换奇怪的问题解决

问题      
Private Sub Form_Load()
    Dim b() As Byte
    Dim s As String
    s = "aaa;ss;111;中国"
    Debug.Print s
    b = StrConv(s, vbFromUnicode) ' 字符串转成数组
    s = StrConv(b, vbToUnicode)      ' 数组转成字符串
    Debug.Print s
End Sub

aaa;ss;111;中国
慡?獳????ú 这里为什么转换不会来了?怎么才能让他回来呢?      
在CSDN有与LZ相同的问贴,已有网友指出下句错 
s = StrConv(b, vbToUnicode) ' 数组转成字符串 
应该为: 
s = StrConv(b, vbUnicode) ' 数组转成字符串 
参阅NSDN: 
StrConv 函数 
返回按指定类型转换的 Variant (String)。 
语法 
StrConv(string, conversion, LCID) 
StrConv 函数的语法有下面的命名参数: 
部分 说明 
string 必要参数。要转换的字符串表达式。 
conversion 必要参数。Integer。其值的和决定转换的类型。 
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。) 
设置值 
conversion 参数的设置值为: 
常数 值 说明 
vbUpperCase 1 将字符串文字转成大写。 
vbLowerCase 2 将字符串文字转成小写。 
vbProperCase 3 将字符串中每个字的开头字母转成大写。 
vbWide* 4* 将字符串中单字节字符转成双字节字符。 
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。 
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。 
vbHiragana** 32** 将字符串中片假名字符转成平假名字符。 
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。 
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。