发信人: wenbobo()
整理人: wenbobo(2002-12-22 01:27:57), 站内信件
|
发信人: bluesea (蓝海), 信区: Internet
标 题: 乱码大全(16)──Unicode(3; UTF-8、Unicode与汉字乱
发信站: BBS 水木清华站 (Tue Apr 14 15:11:21 1998)
乱码大全(16)──Unicode(3; UTF-8、Unicode与汉字乱码)
UTF-8, A Transformation Format of Unicode and ISO 10646 (See:ISO/
IEC 10646-1:1993 AMENDMENT 2 (1996). UCS Transformation Format 8(UTF-8).
Also See RFC-2044)。
很多应用程序不能直接处理 Unicode 或 UCS-4/UCS-2 中的 16(32) 位字符。
如 Unicode 中含有的 \x0、\ 等字符将不能直接用于文件名或 C 字符串等等。
UTF-8 编码进行了这样的处理:它保持 US-ASCII 字符为 US-ASCII, 而其他编
码要保证高位是 1,在编码序列中还包含了码长信息。UTF-8 是一个不定长度的
编码。这样编码的结果是在编码序列中,所有的 US-ASCII 码原来也一定是 US-
ASCII 码。(具体意义和方法详见上述资料)
例如下面的邮件将在不支持 UTF-8 编码的邮件程序中显示成乱码:
1: From: "bluesea" <[email protected]>
2: Subject: =?utf-8?B?5rWL6K+V?=
3:
4: 鈥滀贡鐮佸ぇ鍏ㄢ濓紝浣滆咃細bluesea锛屾按鏈ㄦ竻鍗?
5: BBS鎴愬憳銆傛杩庡湪 BBS涓浆杞姐傛湰鏂囧師杞戒簬姘存湪
6: 娓呭崕 BBS 鐨?Internet璁ㄨ鍖恒?
除了编码中夹带零星的英语单词可以帮助我们判别以外,没有更明显的标志帮助
我们识别它是 UTF-8 编码。只能通过猜测和试验来进行。 假如我们猜测它属于
UTF-8,那么我们需要在原信头添加下面的信息:
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
注意,上面两行加在原信的第三行处,与原信头不要留空行。然后将被编辑的信
件另存为 *.eml 文件,用双击它启动 OutLook Express 即可获得原信的内容。
同时这里也提醒一下,如果你拥有支持 UTF-8 编码能力的邮件程序, 在用它发
信的时候,尽量不要使用这个编码,以免使对方不知所措。
一个不错的汉字代码转换软件: MView Convert 可以把转换 UTF-8 编码的
文件转换为 GB 或其他编码的文件。它的下载地址参见 UTF-7 文。
无论 UTF-7、UTF-8 还是我们前面提到的 MIME 或其他什么编码造成的乱码,
乱码明文提供的信息未必都是完整的。其实信件的全部内容并没有完整地显示在
邮件程序的信体显示窗口中。不同的邮件程序可以通过不同的方法 (如 OutLook
Express 是通过选择“属性”/“详细资料”/“邮件的源文件”) 获得的邮件的
完整信头,那么我们需要的编码信息往往就在信头中。
上面我们先后解决了 UTF-7、UTF-8 这两种转换码的解码。最后,我们再解
决 Unicode 与 GB、BIG5 的相互转换。上面例子提供的信息用 Unicode 表示将
是这样的(实际上不应该有换行,只是为观察方便而加上):
.Nqx.Y'Qh .�.O\..�. b l u e s e a�.l4g(n.SN . . B B Sb.TX0.k"
徫W( B B SN-弆弣0.g,e嘢煆}N巐4g( . .n.SN B B S v? I n t e r n e
t嫧嫼S:0.
可以看到,Unicode 中,所有的字符都是 16 位的,包括所有的 7位 ASCII
码都被扩充为 16 位。(注意,高位扩充的是零 \x0,上面显示成空格)。这样的
代码不再属于传统意义上的文本文件。这些代码可以使用我们介绍的 MView
Convert 软件转换成为 GB、BIG5 或其他汉字编码。注意区分转换选择中 UTF-7、
UTF-8 和 Unicode。
“乱码大全”,作者:bluesea,水木清华BBS成员。欢迎在 BBS中转载,帮
助计算机初学者解决使用软件过程中遇到的实际问题。本文原载于水木清华 BBS
的 Internet讨论区。地址是: telnet://bbs.tsinghua.edu.cn ,WWW访问的地
址是 http://bbs.tsinghua.edu.cn 。当下面的条件全部满足时,转载本文可以
不经过作者允许:(1) 转载水木清华 BBS 的信头;(2)不修改原文;(3) 转载仅
限于各种 BBS 和非商业性质的个人网点。 严禁各种形式的抄袭,严禁非作者将
本文或局部用于任何正式出版的刊物。本自然段是全文的一部分。
[email protected]
--
上帝创造猫,是为了让人类体验抚摸老虎的快乐。
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.112.145.96]
|
|