2024年4月3日发(作者:)

乱码大全(3)──汉字与乱码

乱码大全(3)──汉字与乱码

汉字乱码是一个古老的问题了。自从汉字走进计算机,关于汉字

乱码的问题一天也没有消失过。有关汉字和 HTML 的问题,将在本文

系列的稍后的文章中单独谈到。本文不准备重复 GB_2312-80(国标)、

BIG5、GBK、HZ 的最基本的互相转换的问题,相关的内容可以在

本 BBS Chinese 板询问。 这里以其他角度做一些补充。

由于编码位置上的巧合和汉字平均出现概率上的统计,用 GB 环

境看 BIG5 编码的文字,将有汉字显示成为日语的假名,这个是

在 GB 环境下看到 BIG5 汉字的主要特征。上网时间长一些,就会积

累一些经验,使得你能够一眼区分乱码的类型。比如下面的例子就

是 BIG5:

¨睹絏

い锣更

更セゅ

эゅ

琿琌ゅ

常见的汉字乱码还有 HZ 编码,这是一种屏蔽最高位的汉字表示

方法,它是在 GB 和 BIG5 的基础上,用 ~{ 和 ~} 括起汉字编码的部

分。比如:

blueseaれ睲地BBSΘ

癚阶跋

兵ン场骸ì

獺繷

呼翴 腨窽

セ 礛

龟悔拜肈

BBS

セゅ

(2)ぃ

腊 璸衡诀秆∕ㄏノ硁ン筁祘い笿

(1) 锣更

れ睲地 BBS Internet

ぃ竒筁

(3) 锣更度

场だ

す砛

telnet:// WWW砐拜

れ睲地 BBS

ヴ タΑ

贺 BBS ㎝獶坝穨┦借

盢 セゅ┪Ы场ノ贺Αй脓腨窽獶

很多海外中文杂志,如著名的《华夏文摘》( )等都仍然采

用 HZ 编码方法。HZ 编码用额外的控制序列来控制字形的显示,字母

和数字是不被编码的,它们在 ~{ 和 ~} 标记对的外面。这种编码不符

合汉字与文本字符的固定映射规律,处理起来相对麻烦。著名的汉字

平台──南极星 ( NJWIN 1.6, ) 对 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 或更高的版本作为最基本的操作环境。中文

之星 ( 、 / ) ,四通利方Richwin( / ) 等由于技术和企业行为的不稳定

性,不适合作为具有依附性的中文平台。但是这些软件中的局部,如

新拼音输入法、支持剪辑板的码转换器等还是具有一定特色 的。如果

有对这个问题感兴趣的讨论,请到 Chinese 板搜索以前的标题继续讨

论。

在 Chinese Community Information Center (CCIC),集中了一

些中文处理的比较完整权威的解决方案,该网点地址是 /software ,

其中包括了各种操作系统、各种汉字编码的处理方案和软件。

除了常见中文平台外,通过 、 、 等共享软件网点,查询 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)

下载地址为:

/cgi-bin/search?query=

/cgi-bin/search?query=

/cgi-bin/search?query=

其他软件请到 /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”。