以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML基础 』 (http://bbs.xml.org.cn/list.asp?boardid=1) ---- UNICODE的一点理解 (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=32741) |
-- 作者:flyfoxs -- 发布时间:5/20/2006 10:40:00 AM -- UNICODE的一点理解 看了好多UNICODE的标准了,经常在不同的地方看到不一致的说法,现在把我的理解写下来。 请大家最好带着批判的眼光来看,里面可能有很多错误,不要误了大家,下面列出了很多参考文献。如果发现了错误,请大家指出或讨论。 1)UNICODE定义的字符集,刚开始只准备用16位,可是好像不够用,因为16位最多只能容纳6万多个字符,后来就扩展到32位了(好像实际上只有31位,最高位不用,永远为0) 2)UTF-8是UNICODE的一种编码形式,由于Unicode开始只准备用16位来表示所有字符,所以一般情况下UTF8编码也只会出现1-3个字节,但实际上它可以支持到6个字节(但是6个字节有一些保留位,真正有效的位也就刚好只有32,刚好容纳UNICODE字符集。 后面附UTF-8的详细编码方式,可以看出为什么6个字节,有效位只有32位。 3)平常所说的UNICODE编码指的是UTF-16, 它使用16个字节,或者是32个字节来表示一个字符。UTF-16与UTF-8类似,只是跨步使用了2个字节,而不是UTF-8的一个字节了(也就是要么2个字节,要么4个字节,不可能出现1个或者3个字节的编码)。当然如果用UTF-16这种编码方式,文件必需要以一定的方式在开头申明使用了这种方式,如何申明就不说了,这方面的资料网上很多,并且非常一致。 4)UTF-32就没什么好说的了,网上资料写的很明白,就是直接用一个32位来表示UNICODE。UTF-32与UTF-16一样,他也要在文件的开头以一定的方式来申明它使用了UTF-16编码,要不然就不能正确解码了。
计算机编码大全(强烈推荐) http://www.cppblog.com/oosky/archive/2005/12/13/1723.aspx http://bbs.netton.cn/ShowPost.asp?ThreadID=1906 http://iask.sina.com.cn/b/3798538.html http://www.matrix.org.cn/thread.shtml?topicId=34590&forumId=19 http://www.ismayday.com/article.asp?id=61 http://www.cppblog.com/liangbo/archive/2006/04/23/6103.html http://dev.csdn.net/article/35/35305.shtm http://support.uufriend.com/blog/tom/99220.htm http://spaces.msn.com/iamtin/Blog/cns!1pvp_euYfEkmt-djP-0RlwBw!302.entry http://news.onlinedown.net/info/13164-1.htm http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=1749 U-00000000 - U-0000007F: 0xxxxxxx
[此贴子已经被作者于2006-5-21 9:59:42编辑过]
|
-- 作者:c517 -- 发布时间:5/28/2006 8:39:00 AM -- 学习ing |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
2,601.563ms |