如何做一個 適用於多語系之軟體 -1(VB)
剛開版先貼一個很簡單的
Public Function UniCodeStrChange(ByRef ChangeStr)
UniCodeStrChange = StrConv(StrConv(ChangeStr, vbFromUnicode), vbUnicode)
End Function
使用上很簡單
UniCodeStrChange("繁簡英 皆適用哦^^")
作用: 使程式在 各種windows語系平台上 文字 皆能顯示正確,作用類似C++的 _T 巨集
限制: 原則上最好還是在 windows NT 以上(2000、XP、2003...)
缺點: 在簡體windows下也是顯示 "繁簡英 皆適用哦^^",而非 "繁简英 皆适用哦^^" (可以了解吧 ^^)
講解: 拆開來看就是
先 vbFromUnicode :將字串由 Unicode 轉換為系統預設的字元碼對應頁
再 vbUnicode :利用系統預設的字元碼對應頁將字串轉換為 Unicode。
繞了一圈 Unicode->ANSI->Unicode
VB對其內之文字會自動轉換成 雙位元字碼(Unicode) 於內部處理
但 VB不是一個 Unicode軟體
所以編譯後又會變回 該語系下之ANSI字碼
因此在 簡體windows下 運行 正體windows之軟體 會變成 亂碼
但經過上述轉換
會強制使用 字元碼對應頁 所以達到所得效果
(正確觀念不達要領還請見諒,因為個人都是自學的^^||)
|