一个好的中文网点,应该能够做到让大多数浏览者能够舒服地阅读网页,退而求其次应该是让访问者可以读懂。但是,中文 Web 的浏览环境是一个复杂的多维空间。对于上面的要求,即便是后者也并不是每个网点都做到了。为了迁就系统功能的某个设置,往往会忽略另一个设置,网点的设计者需要从很多选择中进行折衷。
中文 Web 的浏览环境这个复杂的多维空间的组成是什么呢? 我想至少包括这样几个因素: (1) 操作系统及其版本、语种;(2) 中文平台的种类; (3) 浏览器的品种及其版本。由上面的几个因素相互组合,可以形成几十种浏览环境,它们在浏览同一个网页时的效果都会有所不同。我们有理由认为: 由中英文 Windows95/NT、常见中文环境(NjWin、Cstar、Richwin)和常见浏览器(Netscape 3.x/4.x、中英文IE3/4)构成了中国 Web 访问的主要浏览环境。
顺便说一句我们曾经多次提到的一个问题,很多网页的设计者都在追求中文文本的自动折行,但是只要你承认上面的浏览环境的构成因素,那么请不要费劲了,这个特性不仅取决于网页的制作,还取决于浏览环境。当然,还有无数自信的网页设计者在设计其他特性时也是在自己那里试验通过后就认为一切都大功告成了。
在上面提到的浏览环境中,常见的汉字乱码有两种。这两种情况依靠调节浏览器的各项参数和选项是无法克服的。
一、所有的汉字都显示成矩形的小方块。比如:
□□□□ Windows 95 □□□□□□□□□□□□,□□□□ 70% □□□□ □□ 25% □□□□□□□□, Microsoft □□□□ Netscape □□□□...
(实际的方块是瘦一些的矩形,是 Windows 的某种字体。) 这种情况的发生有这样四个条件: (1) 浏览网页用的是 Netscape Communicator (Navigator) 4.x 版本;(2) 使用的操作系统是英文 Windows; (3) 使用的汉字平台是中文之星或 RichWin;(4) 出现这种情况的网页一定使用了包含“gb2312”的标记:()
没有遇到过这个问题的人也许觉得不可思议, Netscape 会有这么低级的问题。但是事实上却是如此的。
解决方法之一是使用南极星 NJwin 1.5x/1/6x 做中文环境。在 SMTH 中, yuhj 是首先提出用 NJwin 来解决这个问题的人。他在述及这个问题时曾提到:“具体我没有去研究过,总之用了 Njstar + 英文win95 + Netscape 4.x 看一般中文网页都没有问题了。 Njstar 使用中文 95 模式主要是不要它用自己的字体,那个字体比较难看,因为是和 Richwin 同时运行,这样屏幕上显示的是 Richwin 的 Truetype 字体。而 Njstar 在前面提供中文识别。这里 Richwin 换做 Cstar 应该一样有效,没有其他什么要求。”
在 USENET 的 alt.chinese.text 讨论组中,G.Chen 最近发文章说:“Netscape Communicator 默认使用 Unicode,而现有大多数汉字平台不支持,这可以通过修改 Windows 95 注册簿来解决这个问题”。即将下面的内容存成 fix-mozilla.reg,然后双击解决:
----------- fix-mozilla.reg cut from here --------------
REGEDIT4
[HKEY_CURRENT_USERSoftwareNetscapeNetscape NavigatorINTL]
"useUnicodeFont"=dword:00000000
----------- fix-mozilla.reg file end -------------------
当然,绕道解决也是克服这个问题方法,比如:换用 Netscape Navigator 3.x、Microsoft Internet Explorer 3.x/4.x;或干脆换用 PWindows (95) 等。
对于本文的问题,就涉及到一个主页制作的问题。中文 HTML 尚无标准可循,所以我个人认为让现有浏览环境的大多数人可以读懂应该是网页设计者的主要目标。“charset=gb2312”的用法是 Netscape 首先提出的 (Microsoft 开始采用的是gb_2312-80),那么这种用法到底是用,还是不用? 这样用的好处是能够让 Netscape 浏览器在阅读网页的时候支持汉字自动折行。至少出现乱码的读者和英文 Windows/IE 的用户无法享受这个特性。因此 charset=gb2312 不如不用。 或者在主页明确提示用户可能会发生的麻烦及其解决方法。