LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1001|回复: 3

想更加深入的了解一下编码或字体,请兄弟们一起来找些资料吧。

[复制链接]
发表于 2003-12-11 21:07:42 | 显示全部楼层 |阅读模式
多谢了。
DBCS是亚洲的字符集。
包含了ANSI,ANSI也就是ASCII值为0-255之间的字符,当字符为ANSI时,存放于文件中占用的是一个字节。如果是非ANSI的呢,则占用两字节。
假如一个字符得到的DBCS值为&H1234,当然,这个值是转换成了十六进制的,因为对于磁盘存放来说,一般使用位(BIT),即二进制存放,而显示字节呢用十六进制显示则非常直观。存放在文件中即"12 34"(这是用十六进制文本编辑器中查看到的形式) 即顺序排列。
UNICODE是世界性的字符集,几乎包含了世界上的所有字符,每个字符都有一个单一的UNICODE值。可能是差不多吧。我不认为一定全包含了。
UNICODE值也是占用两个字节的。但不同的是它虽然也包含了标准的ANSI字符值,但是ANSI字符只占用一个字节,UNICODE会自动在ANSI 值后加入一个值为0的字节。比如说一个ANSI值为&h45的字符,以UNICODE形式存放则为"45 00"。
普通的非ANSI字符以UNICODE形式时则是从右存到左的。比如一个值为&H1234的字符,存为UNICODE时则为"34 12" 。
UNICODE的意义在于能让不同环境下的操作系统识别。比如说吧,你在中文的操作系统下使用记事本写了一篇文本文章。但你要拿到别的环境下的WIN2K (之所以选WIN2K,是因为WIN2K支持UNICODE,否则用WIN98只能用外接中文平台才能查看)下查看(比如美国的电脑,操作系统为英文,代码页也是美国(WIN2K有设置代码页)),即使该电脑已经安装了中文字体,即使用WORD这样的编辑软件打开也肯定是乱码一堆。这是为什么呢?因为英文的WIN2K操作系统只能识别UNICODE呀!并不能识别咱们亚洲的DBCS码呀!
解决方法只要你把它转换为UNICODE码存放就OK了!像Utrla Edit就能转换。WIN2K里也有代码转换器可以,而WIN2K下的记事本则可以用另chun为UNICODE码。如果你使用的是WIN9X,则可以自己用VB解决了。UNICODE码存放的文本文件与普通的文本文件不同之处仅仅是文件头加了"FF FE"而已。其他的则是代码值不同。只要转换了字符的代码,并在文件前加上"FF FE"这两个字节,就是把这篇中文文章保存为UNICODE格式了!转换成UNICODE格式后,英文操作系统的机器只要用WORD打开你的文件就能查看了!(为什么用WORD是因为它有字体识别功能。普通记事本只把文字链接到系统字体上,而英文系统的默认字体可不是不包含中文的哟!当然就显示不出来啦)
从上面两段可以读出,这段文字全是依据 windows 写的。
不过为我们写通用的程序提供了资料了。:)
---------------------
我还在找资料。还有很多没有找到,gb2312,gbk,big5,gb18030,unicode ,等等,这些编码的介绍,怎样和 Linux 的内码连接的。怎样互相转换呢?
 楼主| 发表于 2003-12-11 21:36:59 | 显示全部楼层
有关内码的小知识

  字符编码:字符编码就是以二进制的数字来对应字符集的字符,目前用得最普遍的字符集是ANSI,对应ANSI字符集的二进制编码就称为ANSI码, DOS和Windows系统都使用了ANSI码,但在系统中使用的字符编码要经过二进制转换,称为系统内码。

  汉字内码:ANSI码是单一字节(8位二进制数)的编码集,最多只能表示256个字符,不能表示众多的汉字字符,各个国家和地区在ANSI码的基础上又设计了各种不同的汉字编码集,以能够处理大数量的汉字字符。这些编码使用单字节来表示ANSI的英文字符(即兼容ANSI码),使用双字节来表示汉字字符。由于一个系统中只能有一种汉字内码,不能识别其它汉字内码的字符,造成了交流的不便。

  GB码:GB码是1980年国家公布的简体汉字编码方案,在大陆、新加坡得到广泛的使用,也称国标码。国标码对6763个汉字集进行了编码,涵盖了大多数正在使用的汉字。

  GBK码:GBK码是GB码的扩展字符编码,对多达2万多的简繁汉字进行了编码,简体版的Win95和Win98都是使用GBK作系统内码。

  BIG5码:BIG5码是针对繁体汉字的汉字编码,目前在台湾、香港的电脑系统中得到普遍应用。

  HZ码:HZ码是在Internet上广泛使用的一种汉字编码。

  ISO-2022CJK码:IOS-2022是国际标准组织(ISO)为各种语言字符制定的编码标准。采用二个字节编码,其中汉语编码称ISO- 2022 CN,日语、韩语的编码分别称JP、KR。一般将三者合称CJK码。目前CJK码主要在Internet网络中使用。

  Unicode码:Unicode码也是一种国际标准编码,采用二个字节编码,与ANSI码不兼容。目前,在网络、Windows系统和很多大型软件中得到应用。

  内码转换:由于历史、地区原因,有时一种文字会出现多种编码方案,特别是汉字。由于不同于系统内码的字符不能在该系统中正常显示,必须要进行字符的内码转换,即将非系统内码的字符转换为系统可以识别的内码字符。南极星就是这样的优秀软件,其它如四通利方、MagicWin98、两岸通、汉字通等都是这样的内码转换工具。
 楼主| 发表于 2003-12-11 21:54:24 | 显示全部楼层
发信人: bluesea (蓝海), 信区: Internet
标 题: 乱码大全(15)──Unicode(2; UTF-7与汉字乱码)
发信站: BBS 水木清华站 (Tue Apr 14 15:05:19 1998)

乱码大全(15)──Unicode(2; UTF-7与汉字乱码)

UTF,Unicode 转换码, 是 Transformation Format of Unicode 的缩写。
Microsoft IE 4.0 和 OutLook Express 的中文版本把它译成“通用字符”,联
想到 Microsoft(中国)的“专家”们能够把uuencode翻译成“取消编码”,并把
“plug & Play monitor”翻译成“插头和播放监视器”, 这个“通用字符”就
算是可以接受吧。

UTF-7:A Mail-Safe Transformation Format of Unicode(RFC1642)。这是
一种使用 7 位 ASCII 码对 Unicode 码进行转换的编码。 它的设计目的仍然是
为了在只能传递 7 为编码的邮件网关中传递信息。 UTF-7 对英语字母、数字和
常见符号直接显示,而对其他符号用修正的 Base64 编码。符号 + 和 - 号控制
编码过程的开始和暂停。所以乱码中如果夹有英文单词,并且相伴有 + 号和 -
号,这就有可能是 UTF-7 编码。例如有这样一封邮件(行号是后加的):

1: From: "bluesea" <bluesea@163.net>
2: Subject: =?utf-7?B?K2JVdUwxUS0=?=
3:
4: +IBxOcXgBWSdRaCAd/wxPXIAF/xo-bluesea+/wxsNGcobgVTTg-
5: BBS+YhBUWDACayKPzlco- BBS+Ti2PbI99MAJnLGWHU5+PfU6ObDRnKA-
6: +bgVTTg- BBS +doQ- Internet+i6iLulM6MAI-

我们需要在原信头添加下面的信息:

MIME-Version: 1.0
Content-Type: text/plain; charset="utf-7"

注意,上面两行加在原信的第三行处,与原信头不要留空行。然后将被编辑的信
件另存为 *.eml 文件,用双击它启动 OutLook Express 即可获得原信的内容。
同时这里也提醒一下,如果你拥有支持 UTF-7 编码能力的邮件程序, 在用它发
信的时候,尽量不要使用这个编码,以免使对方不知所措。

一个不错的汉字代码转换软件: MView Convert 可以把转换 UTF-7 编码的
文件转换为 GB 或其他编码的文件。它的下载地址是:

http://ftpsearch.ntnu.no/cgi-bin/search?query=mvconv.zip
http://irpslibrary.ucsd.edu/software/ms-win/convert/mvconv.zip
http://irpslibrary.ucsd.edu/software/ms-win/dics/mvconv.zip
http://www.speednet.net/~cheung/mvconv.zip
ftp://ftp.ifcss.org/pub/software/ms-win/convert/mvconv.zip
...

--
上帝创造猫,是为了让人类体验抚摸老虎的快乐。

※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.112.145.96]
 楼主| 发表于 2003-12-11 23:01:33 | 显示全部楼层
http://www.uighurlinux.org/me.htm
维文编码标准化信息
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表