【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,自動完成了轉換