作者mstar (Wayne Su)
看板EZsoft
标题Re: [心得] Unicode 补完计画 (UAO)
时间Sat Nov 3 09:49:26 2007
: 推 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
1F:推 tonyhome:U+xxxx术语叫做codepoint 11/04 22:33