找回密碼
 入住家園
查看: 850|回復: 4

【转帖】关于UTF-8

[複製鏈接]
發表於 2005-12-12 20:16:57 | 顯示全部樓層 |閱讀模式
说明:该贴的内容摘自如下网址
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 编辑 ]
發表於 2005-12-13 12:29:42 | 顯示全部樓層
难怪中国绝不接受此UNICODE字符集,这些工业集团的如意算盘打得也太精明了。
 樓主| 發表於 2005-12-13 16:02:37 | 顯示全部樓層
感谢乘风破浪提供这么好的信息,你是否能详细介绍一下,这个信息对我很有用也可以发到我的邮箱里,谢谢。
發表於 2005-12-13 21:31:35 | 顯示全部樓層
我也是从戴老师帖子里看到这个消息的,现在我将之转过来。

本帖子由声笔系列码于2005-12-11 11:35:06发表

WINDOWS 95的内核已经Unicode化,正是由于这一点,WINDOWS 95上所有GBK字库都可以完全不加修改地作为Unicode字库用于WINDOWS NT平台;只要将WINDOWS 95上输入法码表存成Unicode形式,就可以用于WINDOWS NT平台。但它毕竟还是Code Page,它不是ISO 10646 “一码走遍天下”的体系结构。停留在GBK,或者去发展GB18030都是自寻死路,不可能实现SDSB全球化的数字化产品的开发。

请教戴先生:GB18030已通过并强制执行,汉字存储、传输等过程现在都是两字节,以后汉字编码集完全实现统一到ISO 10646的国际编码标准,汉字的存储应是两字节,传输过程就变成了四字节,按统一码长的原理,汉字和拉丁字母在机内码是同一概念的东西,拉丁字母和汉字也应按统一方式存储和传输,我的理解是否正确,望指教。

这里我先引用王晓明先生的话来介绍一些背景:

========================================================
人们经常听到或见到GBK、Unicode、ISO 10646、UCS、CJK等术语,而且各说不一,甚至产生一些误解,影响这一重要国际标准的普及应用。如有些人认为:ISO 10646就是汉字标准,它的特点就是编码的汉字多。这种理解与事实相距甚远。那么这些术语究竟是什么含义?他们之间有什么关系?这些术语所反映的国际标准的内涵是什么?最新进展如何?……
作为制定国际标准ISO/IEC 10646的参加人之一,我借此篇把该标准的一些基本情况、并以汉字编码区为例就该标准的一些最新进展及其实现作扼要陈述。

【ISO/IEC 10646】它是一个国际标准编号,该标准的英文全称为:Information technology - Universal Multiple - Octet Coded Character Set,简称UCS。中文全称为:信息技术--通用多八位编码字符集,亦称大字符集。它是国际标准化组织(ISO)1993年正式颁布的一项重要国际标准,它的宗旨是全球所有文种统一编码。它的2000年版正在印制中,ISO/IEC 10646-1:2000。
【Unicode】它本身是英文Universal Code的缩略语,顾名思义,就是统一编码。然而,现在这个术语具有双重含义。首先,Unicode是对国际标准ISO/IEC 10646编码的一种称谓;另外,它又是一个企业联盟集团的名称。Unicode集团是由美国的HP、Microsoft、IBM、Apple等几家知名的大型计算机企业所组成的联盟集团,成立该集团的宗旨就是要推进多文种的统一编码,故称Unicode。就内容而言,Unicode和ISO/IEC 10646是一致的,并行的。
【CJK】它是把中国、日本与韩国的英文称谓的首字母用于ISO/IEC 10646中的中、日、韩统一编码汉字的简称。

【GBK】为了推进Unicode的实施,同时也是为了向下兼容,即:与我国一直沿用的字符集标准GB2312完全兼容,电子部与国家技术监督局联合颁布一个新的汉字内码扩展规范:GBK。简单的说,GBK就是在保持GB2312原貌的基础上,将其字汇扩充与ISO 10646中的CJK等量,同时也包容了台湾的工业标准Big5码汉字,此外还为用户留了1894个码位的自定义区,尽管它仍是CodePage(代码页)形式,但还是在原GB2312的基础上迈出了可喜的一步,成为最终向Unicode过渡的一个桥梁。这在WINDOWS 95上就有所体现:WINDOWS 95的内核已经Unicode化,正是由于这一点,WINDOWS 95上所有GBK字库都可以完全不加修改地作为Unicode字库用于WINDOWS NT平台;只要将WINDOWS 95上输入法码表存成Unicode形式,就可以用于WINDOWS NT平台。
=========================================================================

下面再引用一段别人网上的发言,这个问题就比较清楚了:

=====================================================================
从 Udnnews 传来的消息 :中国大陆政府已经否决香港特区政府对于字码采用 Unicode 的提案,并决定采用中国大陆的GB18030 或是 ISO10646 来作为统一全球的汉字码,中共信息产业部司长张琪将于 12 月初来台,与台湾就统一汉字码交换意见。

文中提到 : "目前全球汉字码的标准可以分为四种,即国际标准组织的 ISO10646、大陆的国家标准 GB18030、台湾的大五码 (Big5)及微软、甲骨文、IBM、惠普及康柏等国外资讯大厂所主导的 Unicode 版汉字码。中共中国电子技术标准化研究所主任王立建表示,大陆强烈反对采用由少数外国资讯业者所主导的 Unicode 版汉字码,Unicode 不仅字数少,Unicode 协会的成员对汉学了解不深,不适合作为全球汉字码的标准,大陆已明白告诉微软等想要进入大陆市场的资讯业者,不准采用 Unicode 版汉字码。王立建说,大陆并不反对由国际标准组织主导的 ISO10646 版的汉字码或大陆版的 GB18030,但反对采用 Unicode,为了统一全球的汉字码"。

这件事情凸显了几个问题 :

中文码的纷乱是造成资讯无法交流的缘由
Unicode、ISO10646、GB18030、Big5 孰优孰劣
政府主导中文码统一的方式与形式
两岸该如何解决中文内码的统一问题
刚刚结束了中文译音的争议,现在统一全球汉字码则成了这次的主角,无论如何,审慎评量出一个双赢三赢甚至多赢的解决方案是最好的。
==========================================================================

由此可知,如果按照Unicode原来的打算,应该是所有字符(不论是中文和是西文)内码都是两个字节。但是Unicode为了适应GB18030,适应中国大陆市场,进行了映射,产生了一些汉字需要四个字节的情况。GB18030是因为汉字太多而和Unicode分道扬镳的。
 樓主| 發表於 2005-12-14 12:29:10 | 顯示全部樓層
回复4楼乘风破浪
谢谢,希望有更多的交流。
您需要登錄後才可以回帖 登錄 | 入住家園

本版積分規則

手機版|小黑屋|吳語書院

GMT+8, 2026-9-4 16:34 , Processed in 0.025491 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表