作者:
lihgong ( )
2023-11-06 13:26:44寫嵌入式軟體,離人類世界遙遠,我只知道英文字ASCII code是1byte
小時候用倚天中文,BIG5編碼每個字2byte
UNICODE似乎是2byte,可以表示全世界的文字,矇矇懂懂
閱讀Joel On Software的第四章
https://www.books.com.tw/products/0010467041
這篇文章也可以在這裡看到
https://www.cnblogs.com/AlphaAI/articles/3960296.html
作者:
now99 (陳在天)
2023-11-06 23:40:00推
作者:
wuyiulin (龍破壞劍士-巴斯達布雷達)
2023-11-06 23:41:00有料分享就推
作者:
saladim (殺拉頂)
2023-11-07 02:21:00推 當初直覺該encode怎麼叫作decode 傻了一陣子 ORZ
作者:
ybite (小犬/小B)
2023-11-07 17:32:00Unicode 目前已經快破15萬字 無法塞進2byte了因此UTF-16定義Surrogate Pair來解決(一個字32bit)Python 2的時候str是ASCII 後來新增了unicode 型態Python 3 其中一個大改就是str 一定是一串Unicode文字(unicode扶正str)需要轉成特定編碼再.encode('utf-8')encode出來的是bytes然後傳統編碼 如big5 就是要建一張大表對應Unicode也由於各種歷史原因 其實這個對應並沒有很完全做到1:1如PTT的Big5日文 後來很長時間是用由but維護的「社群標準」Unicode補完計畫來當對應表直到後來PTT內建UTF-8編碼輸出模式後才解決很多問題每個語言或每個作業系統都有自己內部存Unicode的規格Python是PyUnicodeObject(PEP-393)我還記得當年Python 2處理編碼真的是地獄Unicode補完計畫最早是直接patch Windows 的cp950對應表後來UTF-8變成壓倒性主流後 剩下PTT內部資料轉換的情境了
作者:
MoonCode (MoonCode)
2023-11-07 22:12:00樓上好猛
作者: superpandal 2023-11-07 23:04:00
喔
作者:
lihgong ( )
2023-11-07 23:19:00感謝*ybite,我把Surrogate Pair資訊也補上
啊不過同一個漢字不同寫法用同一個 code point 問題無解然後難的地方在複雜語系一堆規則。
作者:
labbat (labbat)
2023-11-07 23:53:00放棄UTF-16吧,投入可變字串長度UTF-8的世界
作者:
zzLin (zzlin)
2023-11-08 00:21:00好文,學習了
作者:
eopXD (eopXD)
2023-11-08 05:13:00推
作者:
Dracarys (MayShowGunMore)
2023-11-08 09:13:00作者: jheli (我是企鵝) 2023-11-08 09:28:00
優質文,推推
作者:
Mtcat (山地貓)
2023-11-08 14:40:001
作者:
yuinami (yuinami)
2023-11-08 22:33:00感謝分享
作者:
askacis (ASKA)
2023-11-09 11:21:00你應該是寫MCU之類的吧,Embedded Linux也是會碰Unicode
作者:
lihgong ( )
2023-11-10 23:48:00感謝 *Dracarys 我把您推薦的文章也補在後記上,非常讚
看能不能再補充 BOM 的資訊? 系統常遇到這類問題.
作者:
lihgong ( )
2023-11-11 09:53:00感謝 *kikilalagirl 我也順便搞清楚BOM和endian的優缺
作者:
art1 (人,原來不是人)
2023-11-12 06:55:00之前碰的傳輸協定是小端傳輸,CRC 也是從小端開始
作者:
yiche (你若安好,便是晴天)
2023-11-12 09:26:00推推 最近接觸到bom utf-8 上網看了一下是什麼格式 就看到原po撰文了
作者:
kentyeh (kent)
2023-11-12 22:57:00大推Dracarys的兩篇文章,不過閱讀順序應該反過來
作者: shibin (喜餅) 2023-11-19 12:36:00
推
作者:
Falldog (Yo)
2023-12-07 08:48:00推