lua用utf-8處理漢字
utf8的編碼規則:
1. 字元的第乙個位元組範圍: 0x00—0x7f(0-127),或者 0xc2—0xf4(194-244); utf8 是相容 ascii 的,所以 0~127 就和 ascii 完全一致
2. 0xc0, 0xc1,0xf5—0xff(192, 193 和 245-255)不會出現在utf8編碼中
3. 0x80—0xbf(128-191)只會出現在第二個及隨後的編碼中(針對多位元組編碼,如漢字)
-- 檢測漢字和英文本元,如果有其他特殊字元或數字,則返回false
function
global:checkchinese(_text)
local ret = {}
local f = '[\65-\90\97-\122\194-\244][\128-\191]*'
local
_len = 0
for v in
_text:gfind(f) do
print(v, #v)
if#v == 1 and v ~= nil then
_len = _len + #v
elseif #v == 3 and v~= nil then
_len = _len + #v
end end
if_len ~= string.len(_text) then
return
false
end return
true
end
lua匹配UTF 8中文漢字
lua5.3雖然支援utf 8,但是自帶的string庫不支援漢字的處理,而且lua的正則實現也比較雞肋,很難匹配中文。所以文章討論utf 8字符集,中文漢字的表示方法,然後說明lua如何匹配utf 8中文漢字。初識utf 8 utf 8是unicode的一種實現,是一種變長位元組編碼方式。對於某乙...
utf 8的中文漢字
從字元編碼講起。1 美國人首先對其英文本元進行了編碼,也就是最早的ascii碼,用乙個位元組的低7位來表示英文的128個字元,高1位統一為0 2 後來歐洲人發現尼瑪你這128位哪夠用,比如我高貴的法國人字母上面的還有注音符,這個怎麼區分,得,把高1位編進來吧,這樣歐洲普遍使用乙個全位元組進行編碼,最...
iOS 漢字轉UTF 8編碼
1.編碼 ios中http請求遇到漢字的時候,需要轉化成utf 8,用到的方法是 nsstring encodingstring urlstring stringbyaddingpercentescapesusingencoding nsutf8stringencoding 2.解碼 請求後,返回的...