UTF 8字元處理

2021-06-21 11:52:21 字數 560 閱讀 6053

參考:

utf-8格式位元組

4中情況分別是:

1、乙個位元組: 0******x,低7位為有效資料,內碼是0x0~0x7f

2、兩個位元組: 110***xx 10yyyyyy,低5位+低6位為有效資料,內碼是0x80~0x7ff

3、三個位元組:1110***x 10yyyyyy 10zzzzzz,低4位+低6位+低6位 為有效資料,內碼是0x800~0xffff,除掉幾個保留的特殊內碼

4、四個位元組: 11110aaa 10****** 10****** 10******,低3位 +低6位 +低6位 +低6位為有效資料,內碼是0x10000~0x10ffff

按前面1的個數就能區分每個字佔了多少個位元組。

if ((c & 0x80) == 0)// 

else if ((c & 0xe0) == 0xc0)

else if ((c & 0xf0) == 0xe0)

else if ((c & 0xf8) == 0xf0)

按這麼區分每個字,只要是utf-8格式的,中英文混排通吃。

Lua處理UTF8字串

專案裡遇到用string.sub擷取中文字串會擷取出來非空,但是無法展示的情況,進行utf字串處理後ok.核心部分是utf字串的判斷 utf 8 字元處理 local function stringtotable s local tb utf8的編碼規則 1.字元的第乙個位元組範圍 0x00 0x7...

Python去除文字中非utf8字元

在處理文件相關專案中,經常會碰到utf8的非法字元,例如使用者上傳乙個檔案,系統根據使用者檔案產生相應結果返回。如果使用者檔案 utf編碼的csv檔案 中有utf8的非法字元,需要程式能自動去掉這些字元,因為這些字元也是無意義的。錯誤資訊 utf 8 codec can t decode byte ...

UTF 8字符集的學習

今天因為擷取中文字串的原因,查了下utf 8字符集的資料,發現之前記憶的知識點有誤,之前一直以為utf 8中英文是1個位元組,其他語言的字元是3個位元組,查完資料後才發現utf 8字符集是一種變長字符集,每個字元占用位元組從1個到6個不等,恰好英文本元使用1個位元組,中文字元使用3個位元組,而且還知...