精華區beta EZsoft 關於我們 聯絡資訊
: 推 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
tonyhome:U+xxxx術語叫做codepoint 11/04 22:33