最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Lua中獲取utf8字符串長度的方法和自定義函數(shù)

 更新時(shí)間:2015年04月21日 09:08:34   投稿:junjie  
這篇文章主要介紹了Lua中獲取utf8字符串長度的方法和自定義函數(shù),本文給出了代碼實(shí)例并講解了UTF8的編碼規(guī)則,需要的朋友可以參考下

復(fù)制代碼 代碼如下:

--- 獲取utf8編碼字符串正確長度的方法
-- @param str
-- @return number
function utfstrlen(str)
local len = #str;
local left = len;
local cnt = 0;
local arr={0,0xc0,0xe0,0xf0,0xf8,0xfc};
while left ~= 0 do
local tmp=string.byte(str,-left);
local i=#arr;
while arr[i] do
if tmp>=arr[i] then left=left-i;break;end
i=i-1;
end
cnt=cnt+1;
end
return cnt;
end

lua 的string庫不支持處理utf-8編碼的漢字。用lua要處理漢字還是很費(fèi)勁的。

UTF8的編碼規(guī)則:

1. 字符的第一個(gè)字節(jié)范圍: 0x00—0x7F(0-127),或者 0xC2—0xF4(194-244); UTF8 是兼容 ascii 的,所以 0~127 就和 ascii 完全一致
2. 0xC0, 0xC1,0xF5—0xFF(192, 193 和 245-255)不會出現(xiàn)在UTF8編碼中
3. 0x80—0xBF(128-191)只會出現(xiàn)在第二個(gè)及隨后的編碼中(針對多字節(jié)編碼,如漢字)
 
 這樣我們可以利用lua強(qiáng)大的模式匹配,來實(shí)現(xiàn)我們要的效果,關(guān)鍵的處理有這么兩個(gè):
1. local _, count = string.gsub(str, "[^\128-\193]", ""),用來得到str中的字符數(shù)
2. for uchar in string.gfind(str, "[%z\1-\127\194-\244][\128-\191]*") do tab[#tab+1] = uchar end,用來把str中的每個(gè)字符映射到tab中

相關(guān)文章

  • Lua學(xué)習(xí)筆記之表和函數(shù)

    Lua學(xué)習(xí)筆記之表和函數(shù)

    這篇文章主要介紹了Lua學(xué)習(xí)筆記之表和函數(shù),本文在代碼中使用大量注釋講解了Lua的表和函數(shù)的使用,需要的朋友可以參考下
    2014-09-09
  • 詳解Lua中的變量相關(guān)知識點(diǎn)

    詳解Lua中的變量相關(guān)知識點(diǎn)

    這篇文章主要介紹了Lua中的變量相關(guān)知識點(diǎn),是Lua入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Lua腳本語言入門筆記

    Lua腳本語言入門筆記

    這篇文章主要介紹了Lua腳本語言入門筆記,本文講解了什么是Lua、Lua里的注釋、Lua里的變量、Lua里的運(yùn)算符、Lua里的數(shù)據(jù)類型、Lua里的代碼塊、Lua里的關(guān)系類型、Lua里的函數(shù)、Lua里的類等內(nèi)容,需要的朋友可以參考下
    2014-12-12
  • lua開發(fā)中實(shí)現(xiàn)MVC框架的簡單應(yīng)用

    lua開發(fā)中實(shí)現(xiàn)MVC框架的簡單應(yīng)用

    最近的游戲項(xiàng)目中使用了lua腳本來開發(fā),項(xiàng)目中用到了MVC框架,最近有朋友問我怎么弄,在這里簡單分享一下思路和一些開發(fā)中的技巧。有需要的小伙伴可以參考下。
    2015-04-04
  • Lua教程(八):數(shù)據(jù)持久化

    Lua教程(八):數(shù)據(jù)持久化

    這篇文章主要介紹了Lua教程(八):數(shù)據(jù)持久化,本文講解了數(shù)據(jù)文件持久化、序列化兩部份內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • 深入探究Lua中的解析表達(dá)式

    深入探究Lua中的解析表達(dá)式

    這篇文章主要介紹了深入探究Lua中的解析表達(dá)式,對于其語法部分的說明和示例都超詳細(xì),極力推薦此文!需要的朋友可以參考下
    2015-07-07
  • Lua協(xié)同程序coroutine的簡介及優(yōu)缺點(diǎn)

    Lua協(xié)同程序coroutine的簡介及優(yōu)缺點(diǎn)

    今天小編就為大家分享一篇關(guān)于Lua協(xié)同程序coroutine的簡介及優(yōu)缺點(diǎn),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Lua變量類型簡明總結(jié)

    Lua變量類型簡明總結(jié)

    這篇文章主要介紹了Lua變量類型簡明總結(jié),本文總結(jié)了Lua中的6種變量類型,并一一說明,需要的朋友可以參考下
    2014-10-10
  • Lua數(shù)據(jù)類型介紹

    Lua數(shù)據(jù)類型介紹

    這篇文章主要介紹了Lua數(shù)據(jù)類型介紹,本文講解了Lua中的nil(空)、boolean(布爾)、number(數(shù)字)、string(字符串)、table(表)、function(函數(shù))、thread(線程)、userdata(自定義類型)等數(shù)據(jù)類型,需要的朋友可以參考下
    2014-12-12
  • Lua中的類編程代碼實(shí)例

    Lua中的類編程代碼實(shí)例

    這篇文章主要介紹了Lua中的類編程代碼實(shí)例,本文直接用代碼講解類的創(chuàng)建、類的實(shí)例化、類的方法調(diào)用、類的繼承、類的多重繼承等面向?qū)ο缶幊谭椒?需要的朋友可以參考下
    2015-04-04

最新評論

泰宁县| 奉节县| 阳江市| 勃利县| 祁阳县| 大埔区| 会泽县| 江口县| 获嘉县| 深泽县| 子洲县| 额敏县| 江口县| 安宁市| 许昌市| 长葛市| 花莲市| 东山县| 晋州市| 册亨县| 武川县| 淄博市| 同江市| 衡阳县| 班戈县| 烟台市| 新疆| 肇东市| 新乡市| 宜春市| 什邡市| 临邑县| 绥江县| 屏东市| 安丘市| 广安市| 绥化市| 五华县| 南雄市| 图木舒克市| 大竹县|