精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>编码解码>>乱码大全>>乱码大全(10)──中文HTML与MSIE(第二版)

主题:乱码大全(10)──中文HTML与MSIE(第二版)
发信人: wenbobo()
整理人: wenbobo(2002-12-22 01:27:57), 站内信件
发信人: bluesea (蓝海), 信区: Internet
标 题: 乱码大全(10)──中文HTML与MSIE(第二版)
发信站: BBS 水木清华站 (Tue Apr 14 15:01:16 1998)

乱码大全(10)──中文HTML与MSIE(第二版)

二、所有的汉字都是不可辨认的乱码,有点像在英文环境下阅读中文时没有
启动中文环境似的。这种问题都出现在 中文 Internet Explorer 中,造成这个
现象的具体原因有两种情况,我们先说第一种。因为无法用 GB 汉字来表达那些
乱码,下面就给出这样的例子,一个能够产生乱码的 HTML 文件。

<HTML>
<BODY>
    &iexcl;&deg;&Acirc;&Ograve;&Acirc;&euml;&acute;
&oacute;&Egrave;&laquo;&iexcl;&plusmn;&pound;&not;&times;&divide;&Otilde;
&szlig;&pound;&ordm;bluesea&pound;&not;&Euml;&reg;&Auml;&frac34;&Ccedil;
&aring;&raquo;&ordf;BBS&sup3;&Eacute;&Ocirc;&plusmn;&iexcl;&pound;
</BODY>
</HTML>

看这个(类)文件会导致汉字无法识别的条件是使用的是中文Windows 和中文
Internet Explorer,呵呵,很多人因此骂 Microsoft 弱智。实际上这这是HTML
中用于规范表示欧洲字符的方法。 这些字符在 Windows 字符集中可以方便地用
于表示法语、德语等使用特殊拉丁字母的文字。这些字符到底是这些语言还是汉
语,如果遵从 Microsoft 的解释方法, 将有可能在同一个中文的网页中同时表
达。

我们可以通过 IE 浏览器的菜单“查看/源文件”功能,看看HTML 源文件中
是否包含上面这样的“汉字”,来判断乱码是否属于这个情况。解决这种乱码的
只有两个途径:(1) 换用 Netscape 3.x 或 4.x 浏览器;(2) 在英文 Windows
下面使用英文 IE 3.x,通过中文之星或 Richwin 来阅读。

对于有保存价值的网点,可以通过手工的方法进行一下转换。方法是首先安
装一套 Netscape Navigator Gold 3.x 或 Communicator 4.x;对于你需要的网
点先用浏览器保存(Save as)到本地,然后用 Netscape Composer ( Netscape的
简易网点编辑器 ) 读入这个网页,然后选择菜单
“ View / Encoding / Simplified chinese (GB2312) ”,然后再保存。

这个转换方法实际上也指出了,当你用 Netscape Composer 制作一个中文
网页的时候,应该怎样设置使得用 中文MSIE 的用户也能够阅读这个网页。这实
际上又一次为我们提出了网点制作的一些问题。显然上面的乱码一定是由 HTML
编辑工具产生的。 很多网页编辑工具,不像 Netscape Composer 这样存在一个
语言的设置,例如 Adobe PageMill 2.0 等工具,你在里面输入中文,它无论如
何都会存成上面的样子。这样的工具显然就不适合来制作中文网页和网点。

因此我们在选择一个新的工具(尤其是所见即所得的设计工具)的时候,不妨
多花点时间去找一找、试一试它的相关选项,然后输入几个汉字并存一个HTML文
件,看看中文是不是肉眼可以识别的,如果不行就只能放弃。当然你如果赌气偏
不让那些用中文 IE 的人来看你的网点,那么另当别论。

第二种情况,HTML源文件中,汉字是肉眼可见的,为什么中文 IE 看上去还
是乱码呢?这是因为网页的作者没有在 HTML 文件中正确标识网页的语言类型,
如在英文 Windows 中使用 Frontpage,网页会自动被加上iso-8859-1标记,如:

<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
脊柱是我们这种生命的重要特征,在此基础上我们才有了光芒的智慧和

丰富的情感。上帝赋予我们自由的意志,同时也赋予我们选择的重担。
</BODY>
</HTML>

这样的网页就会是导致中文 IE 不认中文的后果,只需将 “iso-8859-1” 改成
“gb_2312-80”、“gb2312”(会产生本文上一篇导致的问题) 或者干脆去掉这
一行。具体选择什么方案需要 WebMaster 进行权衡。 当然,这个改变只能由网
页的制作者来做,阅读网点的人是无法改变 WWW 服务器上的内容的, 只能将源
文件存到本地,去掉上面的标记再将就地看,或换 Netscape 浏览器。

尽管 Netscape 3.x 不会出现上面两篇文章提到的两种类型的乱码,但是除
了汉字的乱码外, IE 和 Netscape 浏览器在很多方面都表现出显著的差异,正
是网点设计的千差万别,决定了我们单纯使用一种浏览器显然不如同时拥有两个
浏览器更方便一些。有的网友耽心它们之间有冲突是不必要的,除了你自己拿注
意定下谁是缺省(默认)浏览器外,它们之间相安无事,无论是Netscape 3.x/4.x
还是 IE 3.x/4.x。

最后再提示一下,关于解决安装 P IE4 后,Windows 95 的 Help 成为乱码
的问题参见《乱码大全(3)──汉字与乱码》最后的介绍。

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

※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.112.145.96]


[关闭][返回]