亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

復制代碼 代碼如下:

--- 獲取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要處理漢字還是很費勁的。

UTF8的編碼規(guī)則:

1. 字符的第一個字節(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)在第二個及隨后的編碼中(針對多字節(jié)編碼,如漢字)
 
 這樣我們可以利用lua強大的模式匹配,來實現(xiàn)我們要的效果,關(guān)鍵的處理有這么兩個:
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中的每個字符映射到tab中

相關(guān)文章

  • Lua中rawset和rawget的作用淺析

    Lua中rawset和rawget的作用淺析

    這篇文章主要介紹了Lua中rawset和rawget的作用淺析,本文分別用兩段代碼演示了rawset和rawget的作用,需要的朋友可以參考下
    2015-04-04
  • Lua中操作字符串的基本方法整理

    Lua中操作字符串的基本方法整理

    這篇文章主要介紹了Lua中操作字符串的基本方法整理,是Lua入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • openresty中使用lua-nginx創(chuàng)建socket實例

    openresty中使用lua-nginx創(chuàng)建socket實例

    這篇文章主要介紹了openresty中使用lua-nginx創(chuàng)建socket實例,本文直接給出代碼實例和運行效果,需要的朋友可以參考下
    2015-04-04
  • 簡單講解Lua中的垃圾回收機制

    簡單講解Lua中的垃圾回收機制

    這篇文章主要介紹了Lua中的垃圾回收機制,自動的垃圾回收是Lua的重要特性之一,需要的朋友可以參考下
    2015-05-05
  • Lua基礎(chǔ)教程之賦值語句、表達式、流程控制、函數(shù)學習筆記

    Lua基礎(chǔ)教程之賦值語句、表達式、流程控制、函數(shù)學習筆記

    這篇文章主要介紹了Lua基礎(chǔ)教程之賦值語句、表達式、流程控制、函數(shù)學習筆記,本文來自個人總結(jié),需要的朋友可以參考下
    2014-09-09
  • Lua中的函數(shù)代碼實例

    Lua中的函數(shù)代碼實例

    這篇文章主要介紹了Lua中的函數(shù)代碼實例,本文著重講解函數(shù)的寫法以及一些小知識,需要的朋友可以參考下
    2015-04-04
  • Lua table簡明總結(jié)

    Lua table簡明總結(jié)

    這篇文章主要介紹了Lua table簡明總結(jié),table是lua唯一的數(shù)據(jù)結(jié)構(gòu),table 是 lua 中最重要的數(shù)據(jù)類型,本文詳細講解了table的相關(guān)知識,需要的朋友可以參考下
    2014-10-10
  • 最新評論