|
|
说明:该贴的内容摘自如下网址
http://www.chedong.com/tech/hello_unicode.html#unicode
以下是摘录内容:
UNICODE双字节字符集
所以你可以把UNICODE想象成这样:让所有的字符(包括英文)都用2个字节(2个8位)表示,这样就有了一个2^(8*2) = 256 * 256 = 65536个格子的大棋盘。在这个棋盘中,这样中(简繁)日韩(还包括越南)文字作为CJK字符集都放在一定的区位内,为了减少重复,各种语言中写法一样的字共享一个“棋格”。详细的区位见附录A
(此段文字,叙述有毛病,实际是纵横坐标长各是256;附录A是一个英文表,在此略去)
Unicode:(DoubleByte Charsets)
(以下是一个表,因无法复制表格才变成这样,为了大家看用语言说明:第一列,西欧、英文;第二列,C中、J日、K韩;第三列,其他语言)
西 C中 其
欧 J日 它
英 K韩 语
文 言
为什么还要有UTF-8?毕竟互联网70%以上的信息仍然是英文。如果连英文都用2个字节存取(UCS-2),空间浪费不就太多了?所谓UTF-8就是这样一个为了提高英文存取效率的字符集转换格式:Unicode Transformation Form 8-bit form。用UTF-8,UNICODE的2字节字符用变长个(1-3个字节)表示:(这段文字原文就这样大家看下文可以理解UTF-8的作用)
1.对英文,仍然和ASCII一样用1个字节表示,这个字节的值小于128(\x80);
2.对其他语言的用一个值位于128-256之间的字节开始,再加后面紧跟的2个字节表示,一个字符一共是3个字节;
因此,在应用中程序处理过程中所有字符都是16位(双字节),但在存取转换成字节流时使用UTF-8格式转换,对于英文字符来说和原来用ASCII方式存取时相比大小仍然是一样的,而对中文来说和原来的GB2312编码方式相比,大小为:(3字节/2字节)=1.5倍
[ 本帖最后由 汤光大 于 2005-12-12 20:20:00 编辑 ] |
|