发信人: wenbobo()
整理人: wenbobo(2002-12-22 01:27:57), 站内信件
|
发信人: bluesea (蓝海), 信区: Internet
标 题: 乱码大全(3)──汉字与乱码
发信站: BBS 水木清华站 (Tue Feb 3 00:57:25 1998)
乱码大全(3)──汉字与乱码
汉字乱码是一个古老的问题了。自从汉字走进计算机,关于汉字乱码的问题
一天也没有消失过。有关汉字和 HTML 的问题,将在本文系列的稍后的文章中单
独谈到。本文不准备重复 GB_2312-80(国标)、BIG5、GBK、HZ 的最基本的互相
转换的问题,相关的内容可以在本 BBS Chinese 板询问。 这里以其他角度做一
些补充。
由于编码位置上的巧合和汉字平均出现概率上的统计,用GB环境看BIG5编码
的文字,将有汉字显示成为日语的假名,这个是在GB环境下看到BIG5汉字的主要
特征。上网时间长一些,就会积累一些经验,使得你能够一眼区分乱码的类型。
比如下面的例子就是 BIG5:
¨睹絏〃blueseaれ睲地BBSΘ舧 BBSい锣更腊
璸衡诀厩秆∕ㄏノ硁ン筁祘い笿龟悔拜肈セゅ更れ睲地 BBS
Internet癚阶跋琌 telnet://bbs.tsinghua.edu.cn WWW砐拜
琌 http://bbs.tsinghua.edu.cn 讽兵ン场骸ì锣更セゅ
ぃ竒筁す砛(1) 锣更れ睲地 BBS 獺繷(2)ぃэゅ(3) 锣更度
贺 BBS ㎝獶坝穨┦借呼翴 腨窽贺Αй脓腨窽獶盢
セゅ┪Ы场ノヴタΑセ礛琿琌ゅ场だ
常见的汉字乱码还有 HZ 编码,这是一种屏蔽最高位的汉字表示方法,它是
在GB 和 BIG5 的基础上,用 ~{ 和 ~} 括起汉字编码的部分。比如:
~{!0BRBk4sH+!1#,WwU_#:~}bluesea~{#,K.D>Ge;*~}BBS~{3IT1!#;6S-TZ~}
BBS~{VPW*TX#,0oVz<FKc;z3uQ'U_=b>vJ9SCHm<~9}3LVPSv5=5DJ5<J~}
~{NJLb!#1>NDT-TXSZK.D>Ge;*~} BBS~{5D~} Internet ~{LVB[Gx!#5XV7JG#:~}
telnet://bbs.tsinghua.edu.cn ~{#,~}WWW ~{7CNJ5D5XV7JG~}
http://bbs.tsinghua.edu.cn~{!#~} ~{51OBCf5DLu<~H+2?BzWcJ1#,W*TX~}
~{1>ND?IRT2;>-9}WwU_TJPm#:~}(1) ~{W*TXK.D>Ge;*~} BBS ~{5DPEM7#;~}(2)
~{2;P^8DT-ND#;~}(3) ~{W*TX=vO^SZ8wVV~} BBS ~{:M7GILR5PTVJ5D8vHKMx5c!#~}
~{QO={8wVVPNJ=5D3-O.#,QO={7GWwU_=+1>ND;r>V2?SCSZHN:NU}J=3v~}
~{0f5D?/No!#1>WTH;6NJGH+ND5DR;2?7V!#~}
很多海外中文杂志,如著名的《华夏文摘》( http://www.cnd.org )等都仍
然采用 HZ 编码方法。HZ 编码用额外的控制序列来控制字形的显示, 字母和数
字是不被编码的,它们在 ~{ 和 ~} 标记对的外面。这种编码不符合汉字与文本
字符的固定映射规律,处理起来相对麻烦。著名的汉字平台──南极星 ( NJWIN
1.6, http://www.njstar.com ) 对HZ 提供了灵活和强大的支持。
海峡两岸的语言经过长期的发展,实际上已经不能形成一一对应的关系,GB
和BIG5的转换也是如此。因此这种转换往往具有不可逆性,倒不是说一段文字不
能在 GB 和 BIG5 之间互相转换,而是说一旦你转换错了,信息就不能复原。比
如你拿一段本来的是 GB 的文字当作 BIG5, 然后再实施 BIG5 -> GB 的转换,
就会损失信息,这时逆变换将不能完全得到原来的文字。比如 SMTH WWW 发文时,
本是 GB 的,错选了 BIG5 按钮就会如此,反之也类似。
汉字的另一个问题是所谓的“半个汉字”乱码,由于很多英文编辑软件以字
符为单位来处理文本,汉字被删除一半后,剩余的部分会和相邻的汉字重新组合,
使得文本面目全非。因此,除了注意在输入、删除的时候注意这种问题外,还要
注意不要在英文字处理软件中轻易使用“字符替换”功能,这往往会把一个汉字
的后一个字符和相邻汉字的前一个字符当成一个汉字被替换掉。这种乱码最后往
往令人莫名其妙、找不到原因。
需要说明的是,简体和繁体这两个概念和GB、BIG5并没有逻辑上的联系,GB
的定义是简体字,BIG5采用的是繁体字,但是为了阅读的方便,在各自的编码中
再做一个内部字形或字体的映射,就形成了所谓 GB繁体或 BIG5简体之类的概念,
他们仅仅是一些汉字软件提供的方便功能,如南极星等。我们常见的WWW 浏览器
Microsoft Internet Explorer 4.x 和 Netscape Navigator 4.x 都已经内置了
比较完善的汉字转换功能。加装了语言包的 IE 4.0 还使得我们脱离汉字平台也
可以进行中文处理,并且可以处理大字符集 GBK 。详见Win95_win3.x 讨论区中
“让Pwin95更顺手”系列之(11)。
在中文平台上,很多人有不同的见解。本文的主旨与此无关,仅仅是综合各
个方面的因素,我个人向计算机的初学者建议选择中文 PWindows 95 OSR2 或更
高的版本作为最基本的操作环境。中文之星 ( http://www.chinese-star.com 、
http://www.suntendy.com/ ) ,四通利方Richwin( http://www.srsnet.com/ )
等由于技术和企业行为的不稳定性,不适合作为具有依附性的中文平台。但是这
些软件中的局部,如新拼音输入法、支持剪辑板的码转换器等还是具有一定特色
的。如果有对这个问题感兴趣的讨论,请到Chinese 板搜索以前的标题继续讨论。
在 Chinese Community Information Center (CCIC),集中了一些中文处理
的比较完整权威的解决方案,该网点地址是 http://www.ifcss.org/software ,
其中包括了各种操作系统、各种汉字编码的处理方案和软件。
除了常见中文平台外,通过 http://www.shareware.com、
http://www.download.com 、 http://www.hotfiles.com 等共享软件网点,查询
GB、BIG5、chinese 等关键字可以获得大量的小型应用程序,包括码转换器。尽
管如此,本文还要重点推荐一些用于 DOS 的命令行处理工具, 具有使用方便、
可以进行批处理等特点。他们是:
c2t (将 GB 或 BIG5 转化为拼音)
HZ (gb2hz hz2gb zw2hz)
(convert gb to hz, hz to gb, zw to hz respectively)
hc (convert between GB and BIG5)
下载地址为:
http://ftpsearch.ntnu.no/cgi-bin/search?query=c2t.zip
http://ftpsearch.ntnu.no/cgi-bin/search?query=hz-20.zip
http://ftpsearch.ntnu.no/cgi-bin/search?query=hc-30.zip
其他软件请到 http://www.ifcss.org/ftp-pub/software/ 查找。另外,GB
和 BIG5 属于两个不同组织各自制定的标准体系,对应汉字编码的转换都是通过
表格来转换的,他们之间不存在任何内在的逻辑关系或函数,试图寻找这种公式
的人,请不要白费精力。
几乎所有新生的软件在中国使用都会面临一个汉字兼容的问题,比如新生的
Java 及其开发环境、动态HTML领域等都从未幸免。 通过NT的资源存取能力可以
实现英文软件的界面/资源汉化,由于 PWindows 95 对话框的缺省宋体的大小为
9 磅,而英文 Windows 95 的相应值为 MS Sans Serif 8,所以很多英文软件在
PWindows 中运行时, 界面中的字残缺不全,这些也可以通过资源的重新编辑予
以调整。
但是,软件内核的汉化不是可以轻易实现的。即使是厂家做的汉化工作也有
非常粗糙的痕迹。比如 P-IE 4.0 在安装繁体汉字包后,PWindows Help 就产生
了内码的混乱。这就是个严重的 Bug。有时只能随意选出一个具体的条目弹出帮
助窗口,再反过来调出帮助主题窗口,偶尔还可以对付使用。或者你就再运行一
份 NJwin,在 Option 中选择 Standard English/Western 。其实这一招在以前
讨论 OutLook Express 看 BIG5 邮件的时候就用过了,也是个乱码的问题,详
见 Win95_win3.x 讨论区精华区中的 “让PWin 95更顺手(9)─南极星与OutLook
Express”。
--
脊柱是我们这种生命的重要特征,在此基础上我们才有了光芒的智慧和
丰富的情感。上帝赋予我们自由的意志,同时也赋予我们选择的重担。
※ 修改:·bluesea 於 Feb 3 02:42:48 修改本文·[FROM: 202.99.63.200]
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.99.63.94]
|
|