泰文utf 8轉unicode編碼實現

2021-10-03 18:18:10 字數 660 閱讀 1678

前言:最近的有個專案是要讀取泰文然後將泰文疊加到上。查了一周的資料,所有的流程已經走通了。

泰文轉成unicode編碼:泰文實際上是utf-8編碼的,這也就是編譯器以utf-8的格式才可以正常顯示泰文的原因。

unicode編碼轉成泰文並進行疊加:泰文渲染是採用了freetype第三方庫進行顯示的,freetype需要的是unicode編碼,這也就是為什麼泰文要先轉化為unicode編碼的原因。

泰文的unicode編碼範圍是0e00-0e7f,utf-8將這段範圍的字元用三個位元組表示。然後如果乙個字元後面跟了鞋子和帽子,utf-8就會將後面的鞋子和帽子與主體組成一體,所以就可以造成乙個字元有9個位元組的情況。泰文是不是有點小**(強行吐槽一波)。

比如泰文字元"ผผูผู้",這三個字元的拼寫是主體、主體+鞋子和主體+鞋子+帽子。

『ผ』對應的utf-8編碼是:e0b89c

『ผู『對應的utf-8編碼是:e0b89c e0b8b9

『ผู้』對應的utf-8編碼是:e0b89c e0b8b9 e0b989

大家可以發現泰文的utf-8編碼規則是主體+鞋子+帽子。

utf-8有點類似於haffman編碼,它將unicode編碼為:

0x00-0x7f的字元,用單個位元組來表示&#x

轉 Unicode 和 UTF 8 的區別

簡單來說 unicode 是 字符集 utf 8 是 編碼規則 其中 字符集 為每乙個 字元 分配乙個唯一的 id 學名為碼位 碼點 code point 編碼規則 將 碼位 轉換為位元組序列的規則 編碼 解碼 可以理解為 加密 解密 的過程 廣義的 unicode 是乙個標準,定義了乙個字符集以及...

Linux 下實現UTF8轉Unicode

最近用到sim卡發簡訊,需要提取傳送的資料,並將傳送的資料轉為unicode碼,因為利用pdu模式傳送簡訊的時候,需要unicode碼才能傳送。對資料的轉換需要了解,資料在linux下被儲存為什麼型別的碼值,以及目前的碼值轉換為unicode需要怎樣處理。linux下的資料在記憶體裡的儲存是utf8...

unicode轉utf 8一次記錄

文字如下 u4e2d u592e u5e7f u64ad u7535 u89c6 u5927 u5b66 uff0c u4e2d u56fd u653f u6cd5 u5927 u5b66 需要轉成utf 8,嘗試了好多編碼和轉碼一起使用,最後終於解決,直接上 c u4e2d u592e u5e7f...