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