来源: ChinaUnix博客  日期: 2007.05.10 10:46 (共有条评论) 我要评论
 

简单介绍一下这四种编码方式:
  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.发送重要信息时先发测试信。

摘自linux宝库

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/22381/showart_296955.html

文本文件编码 email编码相关推荐

  1. 获取文件编码格式 java_java实现获取文本文件的字符编码

    一.认识字符编码: 1.Java中String的默认编码为UTF-8,可以使用以下语句获取:Charset.defaultCharset(); 2.Windows操作系统下,文本文件的默认编码为ANS ...

  2. Python中的字符串与字符编码:编码和转换问题

    原文转载自:http://www.cnblogs.com/yyds/p/6171340.html 读后感:最近在跑实验,对于中文编码问题一直感到困扰,读完这篇文章以后,了解了Unicode编码的一些信 ...

  3. 帧编码 场编码_去年,我帮助举办了40场编码活动。 这是我学到的。

    帧编码 场编码 by Florin Nitu 通过弗洛林·尼图 去年,我帮助举办了40场编码活动. 这是我学到的. (I helped host 40 coding events last year. ...

  4. 格伦布编码——rice编码无非是golomb编码M为2^x的特例

    格伦布编码 格伦布编码是一种无失真资料压缩方法,由数学家所罗门·格伦布在1960年代提出. Rice编码 Robert F. Rice提出Rice 编码,是以哥伦布编码为基础做改良而更简易的前置码.R ...

  5. 【Android RTMP】x264 编码器初始化及设置 ( 获取 x264 编码参数 | 编码规格 | 码率 | 帧率 | B帧个数 | 关键帧间隔 | 关键帧解码数据 SPS PPS )

    文章目录 安卓直播推流专栏博客总结 一. x264 编码器参数设置引入 二. 获取 x264 编码器参数 三. 设置 x264 编码器编码规格 四. 设置 x264 编码器编码图像数据格式 五. 设置 ...

  6. Stanford UFLDL教程 稀疏编码自编码表达

    稀疏编码自编码表达 Contents [hide] 1稀疏编码 2拓扑稀疏编码 3稀疏编码实践 3.1将样本分批为"迷你块" 3.2良好的s初始值 3.3可运行算法 4中英文对照 ...

  7. Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略

    Python之sklearn:LabelEncoder函数简介(编码与编码还原).使用方法.具体案例之详细攻略 目录 LabelEncoder函数的简介(编码与编码还原) Methods LabelE ...

  8. 代码,绘画,设计常用的颜色名称-16进制HEX编码-RGB编码 对照一览表

    排列方式,英文名称的字典序 颜色名 HEX16进制编码 RGB编码 AliceBlue F0F8FF 240,248,255 AntiqueWhite FAEBD7 250,235,215 Aqua ...

  9. 省编码市编码区县编码_无浪费编码

    省编码市编码区县编码 本文介绍了如何通过减少软件堆栈中的浪费来高效解决有意义的事件处理问题. Java通常被视为无法在低内存环境中有效运行的内存猪. 目的是证明许多人认为不可能的事情,有意义的java ...

  10. python3 x默认使用的编码_Python3编码问题(Python2请忽略)

    一.python程序编辑界面和运行界面通常都是默认unicode编码字符串的,编辑界面则是ascii编码的,也就是程序语句是用ascii编码的.但最困扰编程小白的不在这里,请看二. 二.python的 ...

最新文章

  1. MySQL 学习笔记(16)— 子查询(单行单列、一行多列、多行多列、 ALL、ANY、SOME 运算符、EXISTS 操作符)
  2. [UML]UML系列——用例图中的各种关系(include、extend)
  3. 配合使用自制的PE3.0启动盘和Windows部署服务,实现Ghost网克
  4. js如何改变HTML属性,javascript – 如何动态设置HTML lang属性?
  5. 配置LNMP遇到的问题(页面空白,不能解析php等)以及fastcgi和php-fom的关系
  6. MonogoDb学习笔记
  7. Java设计模式(七)策略模式 模板模式
  8. DDP、DDU、DAP的区别你都知道吗?
  9. mysql 取最后一次登陆,获得最后一次插入mysql的id | 学步园
  10. linux下,.ko,.o , .so , .a ,.la
  11. 2019年最值得关注的5个人工智能趋势!
  12. 蓝厂为什么着急推出vivo X23?只因vivo NEX叫好不叫座
  13. 基于蚁群算法的多配送中心的车辆调度问题的研究(Matlab代码实现)
  14. 【问题解决】“Web“ facet resources
  15. 曲线拟合合集:regress,polyfit,robust,cfun等
  16. 结构化数据和非结构化数据
  17. DebugView 简单使用
  18. 文献笔记--相关:无线通信、安全加密隐私
  19. Qt通过QAxWidget来使用flash控件的问题
  20. cocos2d-x下硬件音量按键控制游戏音量的实现

热门文章

  1. 50个漂亮的页面导航设计
  2. unity汤姆猫自动检测录音,不说话自动播放
  3. 拥抱变化,面向Java17,Java8-18全系列特性详解
  4. 计算机相关学科查找英文paper的一般方法
  5. 什么是视频比特率:完整指南
  6. OpenStack部署(图文详解)
  7. 共读四步法:看见正向核心的力量—欣赏式探询共读会
  8. 《 黑白团团队》第一次作业:团队亮相
  9. python中shuffle是什么意思_python中shuffle()方法的功能详解
  10. Egret EUI Tab + ViewStack