天天看點

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 轉成系統的預設碼頁。