- 浏览: 401265 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (268)
- java (22)
- Acegi (8)
- Ajax (17)
- Annotation (3)
- Ant (3)
- JBOSS (6)
- Xdoclet (1)
- CSS (20)
- Data Warehouse (11)
- DB2 (3)
- DOM (1)
- dos (2)
- JMF (1)
- JMS (5)
- J2EE (17)
- Hibernate (7)
- struts (10)
- CORBA (1)
- 职业 (2)
- JSF (1)
- JSTL (8)
- 其它 (1)
- Log4j (7)
- svg (7)
- quartz (3)
- web2.0 (2)
- velocity (2)
- apache commons (1)
- js (9)
- html (4)
- sql (3)
- linux (4)
- dwr (14)
- spring (5)
- GWT (7)
- portlet (4)
- 软件工程 (10)
- actionscript (1)
- 测试 (1)
- tomcat (3)
- flash (0)
- 线程 (1)
- mysql (6)
- flex (1)
- oracle (7)
- crystalreport (4)
- itext (4)
- memcache (2)
- linux 监控 (2)
- mongodb (1)
- Kafka (5)
- 网络 (2)
- 分布式计算 (2)
最新评论
-
chenyongxin:
mark
JBoss 4.0.2集群基本知识及配置方法指南 -
softor:
我找到了,下载吧:http://ishare.iask.sin ...
jad是最简单的class反编译为java文件的小工具 (转载) -
softor:
求下载
dodo@lovehang.com
jad是最简单的class反编译为java文件的小工具 (转载) -
juedui0769:
不错!
请问: 如何在 将 log4j.appender ...
Tomcat 日志 配置 (转载) -
spp_1987:
// 建立一个上传文件的输出流
...
Struts上传多个及N个文件的例子
简单介绍一下这四种编码方式:
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.发送重要信息时先发测试信。
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.发送重要信息时先发测试信。
发表评论
-
微信支付或者支付宝支付验签太慢
2017-02-08 17:13 1238调用微信支付或者支付宝验签的时候会很慢,发现程序没有问题, ... -
ReentrantLock 源码分析(三)
2015-03-09 18:14 0这个章节还是分析 AbstractQueuedSynchr ... -
ReentrantLock 源码分析(二)
2015-03-09 18:04 490关于 Unsafe 的一些知识 A collecti ... -
线上事故分析
2015-03-03 14:10 1174事故现象 线上 ... -
memcache 调优
2015-03-03 11:50 687旧版测试结果 1, ... -
memcache 监控
2015-03-03 11:40 4071, 附件世php的监控文件,需要有php的运行环境 2 ... -
ReentrantLock 源码分析(一)
2015-03-09 17:24 641JDK 1.7.55 1, ReentrantLock ... -
java性能的几个用法
2009-02-19 10:49 796Java语言习惯用语 1.循环 ■ 在重要的循环里 ... -
解决html导出excel时数字被改成科学计数法的问题
2008-12-24 13:41 4078【适用范围】IE,JSP 【问题描述和定位】业务需要把一个h ... -
JDBC Hibernate 连接数据库连接字符串大全
2008-10-22 16:48 1107# Application configuration pro ... -
连接各种数据库的连接字符串(java)
2008-10-22 16:46 11641. MySQL(http://www.mysql.com)m ... -
jsp 乱码
2008-10-09 17:46 1155jsp中文显示乱码解决方案2006-12-27 22:56 ... -
JSP页面跳转的方法总结
2008-09-12 17:16 87791. response.sendRedirct(" ... -
jad是最简单的class反编译为java文件的小工具 (转载)
2008-06-24 15:44 7013jad是最简单的class反编译为java文件的小工具. 现 ... -
jspSmartUpload上传下载全攻略
2008-05-22 21:33 633一、安装篇 jspSmar ... -
JAVA数据库连接大全{经典} 转载
2008-05-12 14:51 987Java数据库连接(JDBC)由一组用 Java 编程语言编写 ... -
用java实现断点续传(HTTP)
2007-10-28 12:23 966(一)断点续传的原理 其实断点续传的原理很简单,就是在Htt ... -
六大代码问题检验你的Java知识
2007-10-28 12:20 731六大代码问题检验你的Java知识 你觉得自己是一个Java ... -
J2SE(TM) 5.0专题 之 语言特性
2007-10-28 12:14 759J2SE(TM) 5.0专题 之 语言特性 [准备工作] ... -
AJAX+JSP实现基于WEB的文件上传的进度控制
2007-10-28 12:07 25501.引言 2.实现代码 2.1.服务器端代码 2.1.1 ...
相关推荐
文本类文件编码格式有以下几种: 1)ASCII',这是西文字母 2)ANSI(GBK)',这是兼容西文字母的中文格式 3)UTF-8',这是不带BOM前导标志的UTF8编码 4)UTF-16LE',这是文件中带有UTF-16LE前导标志的标准的UNIcode...
VC++编程实现转换文本文件的字符编码,在多种字符编码之间转换的方法
对各个国家的语言识别,文本文件进行编码识别和编码转换,utf-8转gb18030 , utf-8转gb2312等等,常见的编码格式都是可以转换的,使用的是ICU的库,比较权威
java编写的huffman编码对文本文件进行压缩和解压,有完整的测试文件、java文件和测试结果文件,还附有详细的算法设计说明。良心资源,值得拥有!
这个小工具就是用来批量修改文本文件的编码格式的。打开软件后可以看出来左上角的文件格式可以根据你的文件类型自定义添加,删除(具体的请多多动动鼠标)。下面的编码格式转换处只添加了Qt可以处理的编码格式,对于...
描述:此工具是用来获取某个目录下的文本文件编码.它依赖于java,在命令下运行.所以运行前必须安装java,配置java环境可以使用path变量,也可以到FileEncoding文件里面配也可以.这工具是基于cpdetector项目,它检查文件的...
上回传的那个可能忘了上传源码,非常抱歉,这里就将源码上传,源码里有错误的话,请指正。
可以很方便的查看你电脑中的文本文件(.txt,.html..)的编码格式,程序的主要代码在"关于"里面,没什么大的用途,一时心血来潮,嘿嘿
从国外网站下载的文件类,支持ASCII, UTF-8, Unicode 16 little/big endian四种格式。
txt文本文件的编码方式转换,单个文件和文件夹批量转换。
一个好用的文本文件编码转换器,可以实现文本文件的编码转换,支持常用编码转换,例如Unicode,utf-8,ANSI之间相互转化
以下是获取文件编码的一个类: using System; using System.IO; using System.Text; /// /// FileEncoding 的摘要说明 /// namespace FileEncoding { /// /// 获取文件的编码格式 /// public class Encoding...
利用Huffman编码对文本文件中的字符建立一个Huffman树,将其中所有的字符编码
大二数据结构课程设计 用Huffman编码实现文本文件 压缩解压缩 附带实验报告
转换文件的编码,可指定文件夹、文件后缀匹配查找文件进行批量转换。运行方式:java -jar fileconvert.jar
利用哈夫曼编码思想,设计对一个文本文件(.txt)中的字符进行哈夫曼编码,生成编码压缩文件(.txt),并且还可将压缩后的文件进行解码还原为原始文本文件(.txt)。 实现的功能: (1)压缩:实现对文件的压缩,生成...
哈夫曼编码进行文本压缩
C#+读取文本文件+字符编码
NChardet文本文件编码探测库源码,C#,txt文件编码自动探测 用于自动探测TXT文本文件编码,支持GB2312、UTF-8、ASCII等几乎所有主流编码的探测,使用方法如下: static public Encoding GetEncoding(string bookPath...