`

文本文件的四种编码

    博客分类:
  • java
阅读更多
简单介绍一下这四种编码方式:
  ANSI:系统预设的标准文字储存格式。ANSI是American National Standards Institute的缩写。它成立于1918年,是一个自愿性的组织,拥有超过1300个会员,包括所有大型的电脑公司。ANSI专为电脑工业建立标准,它是世界上相当重要的标准。
  Unicode:世界上所有主要指令文件的联集,包括商业和个人电脑所使用的公用字集。当采用Unicode格式储存文件时,可使用Unicode控制字符辅助说明语言的文字覆盖范围,如阿拉伯语、希伯来语。用户在“记事本”中输入含有Unicode字符的文字并储存文件时,系统会提示你必须选取“另存为”中的Unicode编码,这些字符才不会被遗失。需要提醒大家的是,部分Windows 2000字型无法显示所有的Unicode字符。如果发现文件中缺少了某些字符,只需将其变更为其它字型即可。
  Unicode big endian:在Big-endian处理器(如苹果Macintosh电脑)上建立的Unicode文件中的文字位元组(存放单位)排列顺序,与在Intel处理器上建立的文件的文字位元组排列顺序相反。最重要的位元组拥有最低的地址,且会先储存文字中较大的一端。为使这类电脑的用户能够存取你的文件,可选择Unicode big-endian格式。
  UTF-8:UTF意为通用字集转换格式(Universal Character Set Transformation
Format),UTF-8是Unicode的8位元格式。如果使用只能在同类位元组内支持8个位元的重要资料一类的旧式传输媒体,可选择UTF-8格式。

能否举一些例子,而且偶想知道电子邮件里面的编码是如何的?

邮件编码介绍及乱码的解决

E-mail一般在传送过程中都要对文件进行编码。这是因为E-mail只能传送ASCII码格式的文字信息。ASCII码为7位代码,非ASCII格式的文件在传送中必须经过编码工具编成相应的A SCII码进行传输,接收端在收到后再根据编码规则进行解码。若非如此就会在传输过程中出现编码截位的问题,导致收信方出现乱码。特别是中文内码的文字,属于8 位代码,并非标准的ASCII码形式,由于国内通行的大部分邮件服务器都能够处理GB内码文件,所以可以直接传送文件而不需要编码,但如果要将中文邮件发到国外或在不支持8 位(非标准ASCII码格式)的某些邮件主机上传输,就会产生乱码。具体的说就是在直接发送中文或非ASCII码的邮件时邮件主机无法处理,会把文件中每个字符的第八位都滤掉(截去第八位)从而使一些信息和原始信息截然不同,或邮件完全损坏成为乱码无法阅读。这也是目前造成邮件乱码的主要原因之一。如果我们对邮件进行七位编码然后进行传输解码,就能解决截位乱码现象。

  E-mail中一般采用UU、MIME、BINHEX三种编码标准,当邮件出现乱码时,很多是由于E-mail编码不对而造成的,由于每种编码其格式都有其各自特征,这就给了我们一个判别的标志。我们可以根据这些特征进行编码判断并采取相应的方法来解决。

  一、UUENCODE编码判断及解决。
  UUENCODE内部所用算法为Base64,其格式为:
  begin 644 gx.zip Mig)0;....
...
end
  其格式特征为在乱码之前会有“begin xxx”后紧跟被编码的原始文件名称,然后是编码信件内容,在最后一行为“end”。
  根据这些特征我们判断出编码方式为UUENCODE方式,就可以使用一些相应DECODE软件来解码。具体方法有:
  (1)将Uuencode“乱码”邮件转寄到自己的邮箱中,再使用能够支持UU解码的电子邮件接收程序(如Eudora、OutLook Express等)来接收该邮件。
  (2)通过剪贴板将Uuencode“乱码”存为文本文件,改文件名后缀为UUE,然后使用Winzip解码。

  二、MIME方式编码判断及乱码解决方法
  (一)Base64 encode编码判断
  Base64大体格式为:
  MIME-Version:1.0
Content-type:text/plain;Charset="us-ascii"
  Content-transfer-encoding;base64
  ....
  在乱码前面一般有以下几部分“信头”:Content - type (内容及类型),Charset(字符集)及Content-Transfer-encoding(内容传输编码方式),根据以上信息非常好判断。解决方法有:
  (1)将Base64 encode“乱码”邮件存成一个文本文件,改文件名后缀为.UUE,然后使用Winzip解码。
  (2)将Base64 encode“乱码”邮件存成一个文件,将文件后缀改为.EML,由OutLook Express打开,就可以自动解码。

  (二)QP编码判断
  QP编码大体格式如下:
  =A1A=B1Z=A6N=A1I=AT=DA
  ....
  采用QP编码的信件也很容易判断,只要乱码内容有很多符号“=”就可判断为QP编码。QP乱码解决方法有:
  (1)将QP-encode“乱码”邮件转寄到自己的邮箱中,然后用支持QP解码的电子邮件接收程序(如Netscape mail、Eudora、OutLookExpress、Becky等)来接收该邮件。
  (2)使用Winzip对Quoted-Printable解码。必须注意:
  a.在邮件信头中检查、添加这样两行:Mime-Version:1.0 Content-Transfer-Encoding: quoted-printable ;
  b.信头中间不要空行,信头和信体之间要有一个空行。这样形成的文件,改后缀名为UUE,即可双击启动Winzip得到解码。

  三、其它原因造成的邮件乱码:
  (一)HZ中文乱码
  由于网友们可能使用不同的电子邮件收发软件,因此,来自各个网友的邮件内容可能包含着看不懂的乱码,例如,有时会看到“囊馑迹Z ”这样奇怪的文字内容,实际上这是一串“简体中文HZ”编码。如果使用Outlook Express发送邮件,选用HZ编码,而邮件的接收者使用Eudora来阅读邮件,看到的就是这种乱码。正确的方法是,在撰写邮件窗口中,选择“格式”菜单下的“语言”命令,并选中“简体中文( GB2312)”项,然后发送邮件。这时,如果你使用OutlookExpress,可以打开“查看”菜单点击“语言”选项中的“简体中文(GB2312)”项,或者点击工具栏上“语言”后面的向下箭头,选择“简体中文( GB2312)”功能项,屏幕出现一个对话框,单击“是”按钮,所有邮件主题中含有指定字符集的邮件应用新的字符集。如果你使用Eudora之类的软件,可以用“南极星”之类的软件自动转换不同的汉字编码。如果还看不到的话,可将这些编码文本,拷贝到一个文本编辑器中查看。

  (二)“半个汉字”乱码
  汉字的另一个问题是所谓的“半个汉字”乱码。如果看到下面这串乱码,你一定看不懂它的意思: “把砑⒂萌砑⒙蛉砑暮冒槁隆薄*”
  这是由于很多英文编辑软件以字符为单位来处理文本,汉字被删除一半后,剩余的部分会和相邻的汉字重新组合,使得文本面目全非。因此,除了在输入、删除的时候注意这种问题外,还要注意不要在英文字处理软件中轻易使用“字符替换”功能,否则系统往往会把一个汉字的后一个字符和相邻汉字的前一个字符当成一个汉字处理。
  对于“半个汉字”乱码,只要将“乱码”邮件存成一个文本文件,然后使用以字符为单位的编辑软件,将“乱码”行的首字符删除,后面的部分就会和相邻的“乱码”重新组合成可识别的汉字。
  如果上述方法不能奏效,那么只好告诉对方正确的发送方式,请对方重新发一份邮件给你了。
  讲了这么多,相信大家对E-MAIL的编码有了一定了解,对于一般的编码乱码也有了一定的判别能力了。但E-MAIL乱码不仅仅是由于编码不同所造成的,还可能有其它的原因,比如:
  1.该邮件采用了其它少见的编码方法,如Binhex或XXencode编码等。如果乱码前面有“信头”信息(一般显示了该邮件所用的编码方式),即可用X ferp111或其它“智能型”Windows程序将其解码。
  2.是否在中文环境内。如果你所用的操作系统是英文环境,而你又没有外挂中文系统(如中文之星)或未切换为中文编码方式,则你自然看不到中文(如R ICHWIN四通利方或南极星等),看到的只能是乱码。注意,双字节字符有中文简/繁体的GB和BIG5码及日文的JIS、EUC和朝鲜文的KSC码等,在G B码环境下看其他双字节字符时也只能看到乱码。在这些情况下,须用转码工具如Richwin、南极星等进行转换。
  3.邮件未经过编码造成第8位字节滤掉成为无法还原的死乱码文档。

  四、为了尽量避免出现乱码问题,下面给出几点建议:
  1.利用“附件”功能发送文件。
  2.无法以附件方式发送文件时,则必须在正文中发送中文或二进制文件。方法是在你所使用的邮件系统中,选择其首选项或选项配置中的“Q uoted Printalbe”或“MIMEencoding”项。
  3.发送重要信息时先发测试信。
分享到:
评论

相关推荐

    自动识别不同编码的文本文件

    本篇文章将深入探讨“自动识别不同编码的文本文件”的关键知识点,包括ASCII、UTF-8、Unicode 16 Little Endian和Big Endian四种格式。 首先,ASCII(美国标准信息交换代码)是一种基于拉丁字母的7位编码系统,它...

    查看文本文件的编码格式

    文本文件的编码格式是计算机处理文本时至关重要的一个概念,因为不同的编码方式决定了字符集的表示方式和兼容性。在日常工作中,无论是编程、编辑文档还是网页开发,了解并正确处理文件编码至关重要。 标题“查看...

    Huffman编码源代码压缩文本文件用

    19. **decompress函数**:用于解压缩文件,将Huffman编码还原为原始文本。 20. **clear函数**:用于清理Huffman树,释放内存。 21. **文件操作**:代码中包含对文件的读写操作,使用了`fopen_s`函数以安全方式打开...

    文本文件编码识别和编码转换

    文本文件编码识别与编码转换是IT领域中一个重要的知识点,特别是在处理多语言数据时显得尤为重要。编码识别确保了不同语言的字符能正确显示,而编码转换则允许在不同编码标准之间进行有效通信。这里我们将深入探讨这...

    文本文件的编码方式转换

    ### 文本文件的编码方式转换 #### 概述 在计算机科学中,文件编码转换是一项常见但非常重要的任务。特别是对于文本文件来说,不同的系统、软件或应用可能会使用不同的字符编码标准来存储文本数据。因此,为了确保...

    文本文件编码探查.zip

    文本类文件编码格式有以下几种: 1)ASCII',这是西文字母 2)ANSI(GBK)',这是兼容西文字母的中文格式 3)UTF-8',这是不带BOM前导标志的UTF8编码 4)UTF-16LE',这是文件中带有UTF-16LE前导标志的标准的UNIcode...

    获取文本文件编码

    文本文件编码主要有以下几种常见的类型: 1. ASCII编码:这是一个最基础的编码,只包含了英文字符,每个字符用7位二进制数表示,共128个字符。 2. ISO-8859-n系列:这是对ASCII编码的扩展,增加了其他语言的特殊...

    文本文件编码格式转换器

    这个小工具就是用来批量修改文本文件的编码格式的。打开软件后可以看出来左上角的文件格式可以根据你的文件类型自定义添加,删除(具体的请多多动动鼠标)。下面的编码格式转换处只添加了Qt可以处理的编码格式,对于...

    一个好用的文本文件编码转换器

    它可以将文本文件从一种编码格式转换为另一种,比如从Unicode转换为UTF-8,或者从UTF-8转换为ANSI。这样的转换过程对于处理来自不同源的文本文件至关重要,特别是当需要合并不同编码的文本或者确保文件在各种系统上...

    采用Huffman编码,编写一个文本文件的编码器和解码器

    总之,Huffman编码是一种基于字符频率的无损压缩技术,适用于文本文件的压缩。尽管它可能不是所有情况下的最佳选择,但对于某些特定类型的数据,如中文文本,Huffman编码可以有效地减少存储需求。通过编程实现编码器...

    文本文件与二进制文件

    文本文件和二进制文件是计算机存储中的两种基本文件类型,它们的区别在于逻辑上的编码方式不同。文本文件适合存储文本数据,二进制文件适合存储多媒体数据。在实际应用中,需要根据具体情况选择合适的文件类型和编码...

    文本文件压缩【huffman编码实现】

    本项目通过Huffman编码实现了对文本文件的压缩和解压缩功能,并提供了实验报告,以深入理解其原理和应用。 Huffman编码的基础是构建一棵特殊的二叉树,即Huffman树。这棵树的特点是每个叶子节点代表一个字符,出现...

    文本文件编码批量转换工具

    文本文件编码批量转换工具是一款专为处理文本文件编码问题而设计的应用程序,它允许用户方便地将大量文本文件从一种编码格式转换为另一种。在处理跨平台或多语言项目时,编码一致性至关重要,因为不同的系统和软件...

    对文本文档进行Huffman编码的小代码C++ VS2013

    1. **字符频率统计**:首先,需要读取文本文档中的所有字符,并统计每个字符出现的频率。这可以通过遍历文件并使用哈希表(如std::unordered_map)来存储每个字符及其对应的计数。 2. **构建优先队列**:接着,创建...

    基于哈夫曼编码的文本文件压缩与解压缩.zip

    在文本文件压缩中,哈夫曼编码扮演着关键角色。 哈夫曼编码的过程主要包括以下步骤: 1. **频率统计**:首先,对文本中的所有字符进行频率统计,确定每个字符出现的次数。这是哈夫曼编码的基础,因为越常见的字符...

    huffman编码压缩文本文件

    哈夫曼编码是一种高效的数据压缩方法,主要用于文本文件的压缩。该编码技术是基于频率的,通过对出现频率较高的字符赋予较短的编码,而出现频率较低的字符则赋予较长的编码,以此达到压缩数据的目的。在ASCII文本...

    批量转换文本文件的编码格式

    文本文件的编码格式是计算机处理文字时的一种标准,不同的编码方式会影响文件中字符的存储和显示。常见的编码格式有ASCII、GB2312、GBK、UTF-8、Unicode等。在处理多语言或者跨平台的文本时,选择正确的编码至关重要...

    文本文件编码转换

    在IT领域,文本文件编码是数据存储和传输中不可或缺的一部分,尤其在跨平台或国际化的环境中,正确理解和处理各种编码格式至关重要。本话题主要聚焦于“文本文件编码转换”,特别是如何将指定目录内的所有文本文件...

Global site tag (gtag.js) - Google Analytics