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.发送重要信息时先发测试信。

邮件编码介绍及乱码的解决相关推荐

  1. mysql base64 乱码_PHP base64编码后解码乱码的解决办法

    在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的.来看看罪魁祸首是谁. 嫌疑人:base64_encode 和 base64_decode 罪行:我写了 ...

  2. php title 乱码,PHP发送UTF-8编码中文邮件标题乱码的解决

    当我们使用下面的PHP语句发送中文电子邮件的时候,会发现邮件的标题是乱码,而邮件正文却是正确的,如何才能使得邮件标题不是乱码呢? $subject = stripslashes($the_post[' ...

  3. QQ邮箱炸啦,我的附件名怎么乱码?解决javaMail发送QQ邮件,附件名乱码的问题

    解决javaMail发送QQ邮件,附件名乱码的问题 问题背景 具体问题 解决思路 源码Debug 解决方式 问题背景 项目里面使用javaMail发QQ邮件,日志显示我们这边传过去的附件名是正常的,个 ...

  4. php+发送邮件标题乱码_php邮件标题乱码的解决方法

    php邮件标题乱码的解决方法 发布时间:2020-08-18 10:36:53 来源:亿速云 阅读:99 作者:小新 小编给大家分享一下php邮件标题乱码的解决方法,相信大部分人都还不怎么了解,因此分 ...

  5. html发送邮件代码主题主题乱码,网易163邮件内容显示HTML为代码或乱码的解决办法...

    症状:一直都收到监控宝的通知邮件,以前显示正常,现在发现收到的是html的代码,而不是显示html的样式呢? 问题分析: 1.由于发件人所在的国家或地区的编码和中国大陆不一样,比如香港台湾地区一般是 ...

  6. mysql设置字符集 php_MySQL字符集编码设置与PHP显示乱码的解决办法

    转自:博客水木 http://shuimu.js.cn/mysql-php-character-set-encoding-settings-and-garbled-solution.html PHP显 ...

  7. Ajax 中XmlHttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)

    51ajax.comAJAX论坛 用XMLHTTP Post  Form时的表单乱码有两方面的原因--Post表单数据时中文乱码:服务器Response被XMLHTTP不正确编码引起的乱码.换句话说, ...

  8. utf-8编码的中文注释 在 sourceinsight 显示乱码的解决方法---utf8 转gb2312插件

    utf-8编码的中文注释 在 sourceinsight 显示乱码的解决方法---utf8 转gb2312插件 参考文章: (1)utf-8编码的中文注释 在 sourceinsight 显示乱码的解 ...

  9. IDEA统一设置编码为utf-8编码及tomcat 乱码问题的解决

    IDEA统一设置编码为utf-8编码及tomcat 乱码问题的解决 参考文章: (1)IDEA统一设置编码为utf-8编码及tomcat 乱码问题的解决 (2)https://www.cnblogs. ...

最新文章

  1. PHP正则表达式入门教程[转]
  2. android-Activity
  3. node版本查看管理工具
  4. Installing OpenCV 2.3.1 in Ubuntu
  5. 前端学习(526):等分布局
  6. 《Istio 从懵圈到熟练:二分之一活的微服务》
  7. Android开发笔记(六十四)网页加载与JS调用
  8. 第二阶段冲刺第六天站立会议
  9. 国二考试报Wps还是c语言,2021 年全国计算机二级增考 WPS Office
  10. SpaceSniffer 内存管理 空间嗅探器内存清理神器
  11. 图片文字识别 mysql_有道智云OCR图片识别文字+返回数据处理技巧(实现语言-按键精灵脚本请求识别+java服务端处理数据)...
  12. Mysql—— order 和 limit 的用法
  13. 第一行代码读书笔记___3章
  14. c# chart 各个属性_c# Chart设置样式
  15. 【x11-forwarding disabled解决办法】
  16. 《失业七个月,面试六十家公司》的深圳体验
  17. 推荐一个开源的区块链开发者工具网站
  18. Lucene5搜索效果问题探究
  19. 鸿蒙系统卸载预装,神器:无需Root卸载预装APP
  20. Jeeweb 中shiro验证码启用问题

热门文章

  1. 细菌觅食算法(Bacteria Foraging Algorithm,BFA)
  2. 开发必备技术--docker(使用篇)
  3. bpe分词算法的原理以及在机器翻译中的应用
  4. 苹果历代产品中的8大亮点设计(上)
  5. PTA 7-154 置点不动产——认真学习,努力工作买买房子吧
  6. 后悔买房了,太难了,每个月工资8000,房贷5500
  7. 再见 Wordpress!这个开源建站神器有点吊
  8. 互联网巨头追捧的“中台”战略,有多重要?
  9. 叶展:我在泽熙学到的七堂课
  10. 产品经理是做什么的?