精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>编码解码>>乱码大全>>乱码大全(11)──常见文件格式

主题:乱码大全(11)──常见文件格式
发信人: wenbobo()
整理人: wenbobo(2002-12-22 01:27:57), 站内信件
发信人: bluesea (蓝海), 信区: Internet
标 题: 乱码大全(11)──常见文件格式
发信站: BBS 水木清华站 (Tue Feb 3 01:05:05 1998)

乱码大全(11)──常见文件格式

在乱码大全之(7)中,我们提到了 email 在进行文件编码的时候要进行适当
的说明,比如:Content-Type: text/plain;charset="gb2312", 而如果是二进
制文件则需要“Content-Type: application/x-download”或其他说明。也就是
说 email (客户)程序如何进行(正确地)解码或恢复 Attached 文件, 取决于发
送 email 的程序如何组织 email 的全文。当它们配合不当的时候,乱码就会发
生。

还有很多情况,二进制文件没有经过任何编码就传到 email 中了, email
程序不仅没有还原二进制文件,而且传来的 email 连文件名都没有带。例如:

MZ....莦S髛)沈ㄣs羖帶h=)膄浉鄐Hb戸El傽1gf浉鄐ore膏934sLLJD………………
……………………………………………………………………………………………

这种情况现在是比较少了,但是并不是没有。最好是让对方重发。在你思考
如何处理的时候,先判断它们是什么类型的文件有助于你采取合适的措施。由于
文件类型是无法列全的,我们只能举一些常见的例子。这些在其他场合,对于我
们进行文件的恢复、判断都有一些帮助。

这些乱码在 email 中并不是有规律地显示的,而是一长串的乱码。 只有碰
巧遇到回车、换行符号才换行显示。我们至少需要辨认的是这些文件的开头:


    文件类型                 开头的字符       开头字符十六进制表示
    ------------------------------------------------------------
    ARJ (ARJ 压缩文件)                       (60 EA 26 00)
    AVI (Windows 电影)      RIFF....AVI
    BMP (Windows 图片)        BM...            (42 4D)
    DOC/XLS/PPT              邢.唷...         (D0 CF 11 E0 A1)
    (Word/Excel/PowerPoint)
    EXE/DLL/OCX              MZ...            (4D 5A)
    (可执行文件/动态连接库)
    GIF (图片)               GIF87a...
                            GIF89a...
    JPG (JPEG 图形)                          (FF D8 FF E0)
    HLP (Windows Help)                       (3F 5F 03 00)
    MID (Midi文件)           Mthd...          (4D 54 68 64)
    MP3 (MPEG Layer-3文件)                   (FF FB 80 44)
    PS  (Adobe Post Script) %!PS-Adobe-3.0
        (PS 在形式上是文本,可以直接存下来为 PostScript 程序所读/打印
         在 Windows (95) 中可以用 http://www.cs.wisc.edu/~ghost/ 下面
         的 GSView and GhostScript 来阅读和打印)
    RAR (RAR 压缩文件)      Rar!...
        ( 各地 TUCOWS 站点可以下载 WinRAR )
    RTF (RTF 文件)           {\rtf1\ansi\...
        (RTF 在形式上是文本文件,可以直接存下来为Word/WordPad 读取)
    WAV (声音文件)           RIFF....WAVEfmt
    ZIP (PKZIP/WINZIP)      PK...            (50 4B)


辨认文件的开头并不能 100% 地鉴别一个文件的类型,但是对于我们常见的
情况往往是有效的。 如果 email 程序没有还原这些文件,那么要小心的是编辑
程序对于回车换行的处理会造成文件的损毁。在 Unix 中,文本文件的换行只有
一个换行,而在 MS-DOS/Windows 中由回车换行 (0Dh, 0Ah) 两个符号完成。二
进制文件中根据概率将随机存在 0Dh、0Ah、0D0Ah 这样的符号, 不同的文本编
辑程序在另存的时候处理方式是不同的,有的是统一变成 0D0Ah,这样,原来的
二进制文件将被破坏。

如果你用的是 Microsoft Mail/OutLook Express,可以将邮件直接存成EML
文件,再用 UltraEdit 在 Hex 方式去除信头; 如果是其他的 email 程序,可
能要去寻找存放 email 目录的文件,从中截取相应的部分。如果是在 Hotmail
等 Webmail 中发现这样的情况, 从剪辑板拷贝信体一般是不行的,应该设法将
email Forward 或 reply 到其他信箱再试验。 总之,这种情况下恢复二进制文
件需要格外注意的就是信息能否完全保存,没有固定的方法,也并不一定能够恢
复成功。

如果恢复的二进制无法确认它的类型,可以借助 Quick View Plus 4.5
( http://www.inso.com ) 来判断。除了柯达图象等少数文件外,大多数文件格
式都能够识别。

“乱码大全”,作者:bluesea,水木清华BBS成员。欢迎在 BBS中转载,帮
助计算机初学者解决使用软件过程中遇到的实际问题。本文原载于水木清华 BBS
的 Internet讨论区。地址是: telnet://bbs.tsinghua.edu.cn ,WWW访问的地
址是 http://bbs.tsinghua.edu.cn 。当下面的条件全部满足时,转载本文可以
不经过作者允许:(1) 转载水木清华 BBS 的信头;(2)不修改原文;(3) 转载仅
限于各种 BBS 和非商业性质的个人网点。 严禁各种形式的抄袭,严禁非作者将
本文或局部用于任何正式出版的刊物。本自然段是全文的一部分。

--
脊柱是我们这种生命的重要特征,在此基础上我们才有了光芒的智慧和
丰富的情感。上帝赋予我们自由的意志,同时也赋予我们选择的重担。

※ 修改:·bluesea 於 Feb 3 18:39:31 修改本文·[FROM: 202.99.63.209] 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.99.62.45] 


[关闭][返回]