1
嗨下面的代碼在Lua:的Lua string.match UTF - 要求西班牙字符 - 讓一半葡萄牙
letters = "Vocéá"
print(string.match("¡Você","["..letters.."]+"))
回報:
�Voc�
,如果我取代常規電子郵件E和擺脫然後我得到「Voc」。似乎是干涉¡,é與ê。難道他們共享一個字節? 我不是在編碼方面的專家,但這些都是UTF16值,UTF8二進制代碼:
á(feff00e1) 1100 0011 1010 0001
¡(feff00a1) 1100 0010 1010 0001
ê(feff00ea) 1100 0011 1010 1010
é(feff00e9) 1100 0011 1010 1001
我怎麼忽略了葡萄牙字符&了「¡」(以及其他許多我不知道的)?
也許這不是最好的方法。我正在嘗試構建西班牙語標記器。我很驚訝,但匹配函數從一個不包含在我的匹配列表中的字符中返回一個問號。
lua的字符串函數不支持utf-8。他們只是字節。所以這場比賽沒有達到你期望的水平。雖然lua 5.3有一個utf8庫。所以問題在於你將角色分成了兩半。 –