2012-11-27 65 views
1

我已經完成了它,但我不知道如何和我失去了源文件。在Lua獲取代碼點的字符?

我如何獲得Lua中角色的代碼點?或者,至少,一個角色的獨特價值?

+1

什麼是「統一碼值」?代碼點? – mkluwe

+0

不,unicode中的一個字符的值。 – Zyerah

+1

對不起,這不是更具體。 – mkluwe

回答

2

在Lua中5.3,你可以得到一個UTF-8字符串的代碼點與utf8.codepoint

print(utf8.codepoint("瑞")) 
--29790 
+0

閃亮的新功能!感謝您發佈新答案。 – Zyerah

2

對於ASCII字符串很容易:

local char_code = string.byte("A",1); 
-- char_code now contains 65 

爲UTF-8(假設這就是你如何代表數據),它變得非常棘手。要麼使用第三方庫(如slnunicode),要麼必須編寫自己的函數來分發UTF-8字節。

你的Lua的安裝可能已經包含ValidateUnicodeString擴展,這使得這個工作:

local char_code = string.utf8code("ٱ"); 
-- char_code now contains 1649 

(這個例子包含阿拉伯語Alef的Wasla,這可能不是在你的本地字體正確顯示)