將 GBK 編碼的文字轉成 UTF-8 編碼的文字 (string.from_gbk)
聲明
可以直接用的文字 = string.from_gbk(GBK 編碼的文字)
參數
- GBK 編碼的文字
文字型,需要轉換成 UTF-8 編碼的 GBK 編碼文字
回傳值
- 可以直接用的文字
字串型 或 nil,返回 UTF-8 編碼的文字,如果編碼錯誤導致轉換無法完成,返回 nil
說明
將 GBK 編碼的文字轉成 UTF-8 編碼的文字
若輸入本身編碼不正確,函式仍會按映射完成位元組轉換,輸出的亂碼不是函式的問題
更複雜的編碼轉換需求請參考 luaiconv(編碼轉換庫)
注:GBK 編碼包含 GB2312 編碼,因此 GB2312 文字也使用本函式轉換
範例
-- 中文編碼 中文標準編碼 國標擴展編碼 GB2312
gbkstr = '\x58\x58\x54\x6f\x75\x63\x68\x20\xba\xdc\xc7\xbf'
--
sys.alert(gbkstr) -- GBK 編碼的字符串無法顯示
sys.alert(string.from_gbk(gbkstr)) -- 輸出 "XXTouch 很强"
注:上述代碼中使用了非本章函式 sys.alert
說明:在 Lua 原始碼中,字串中 \x 開頭,後面跟兩位 16 進制數表示以該數字編碼的單個位元組。例如:\x58 表示 X 這個字元,可列印字元部分參考《ASCII 編碼》