lua用UTF-8处理汉字

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处理汉字_第1张图片

你可能感兴趣的:(cocos2dx-lua)