推 tonyhome:U+xxxx術語叫做codepoint 11/04 22:33
: 推 sicao:請問有沒有UTF-8跟unicode跟UTF-16等一干差別? 11/02 21:08
Unicode:
就是一個將世界上主要文字整理後按編號排列的列表,用 U+xxxx 來表示
原始是規劃使用兩個 byte,可編列 65535 個字,從 U+0000 ~ U+FFFF
(這個範圍叫「Basic Multilingual Plane」 http://0rz.tw/713fi )
後來發現 65535 個字似乎不太夠用 (東亞文字就佔掉 3/4)
於是又增加了十六倍編號位置,從 U+010000 ~ U+1000FD
不過其中很多部分都是保留用或還在規劃用途中
http://zh.wikipedia.org/wiki/%E8%BE%85%E5%8A%A9%E5%B9%B3%E9%9D%A2
詳細的 Unicode 編號表可以看這個
http://zh.wikibooks.org/wiki/Unicode
前述的 U+xxxx 只是編號方式,實際的「編碼」有很多,
目前常見的是 UTF8、UTF16、UTF32 幾種
UTF8:
這個編碼方式的特色就是針對不同種類的字元使用不同的 byte 數
例 Unicode UTF8 編碼
U+0000 ~ U+007F 使用 1 byte G U+0047 47
U+0080 ~ U+07FF 使用 2 byte Я U+042F 042F
U+0800 ~ U+FFFF 使用 3 byte @ U+FF20 EFBCA0
U+010000 ~ U+10FFFF 使用 4 byte U+20000 F0A08080
好處是原 ASCII 的資訊 (即使用 1 byte 的) 不必轉換就可以繼續使用
UTF16:
不像 UTF8 變動 byte 數,而是固定用 2 byte 對 U+0000 ~ U+FFFF 編碼
(但 U+010000 ~ U+10FFF 則用 4 byte 編碼)
分為好幾種排列方式
例:Я (U+042F) @ (U+FF20) Я@
編碼 編碼 編碼
UTF16LE (UTF16 Little-Endian) 2F04 20FF 2F0420FF
UTF16BE (UTF16 Big-Endian) 042F FF20 042FFF20
UTF16LE 含 BOM (Byte Order Mark) FFFE2F0420FF
UTF16BE 含 BOM FEFF042FFF20
為目前 Windows 等許多作業系統內部處理使用的編碼方式
UTF32:
每個字元都固定用 4 byte 編碼
例:Я (U+042F) @ (U+FF20) Я@
UTF32LE 2F040000 FF200000 2F040000FF200000
UTF32BE 0000042F 0000FF20 0000042F0000FF20
UTF32LE 含 BOM FFFE00002F040000FF200000
UTF32BE 含 BOM 0000FEFF0000042F0000FF20
--
Sincerely, 2003, 2005 日本自助旅行紀錄 http://mstar.myweb.hinet.net/JPtour
Wayne Su 2004 台灣東部鐵路旅行
2006 亞歐洲鐵路縱貫旅行 hk cn mn ru by pl de ch fr mc it va li uk
http://www.pixnet.net/mstar http://blog.pixnet.net/mstar
next will be...?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.229.46.166