`

记一次邮件标题乱码

    博客分类:
  • java
 
阅读更多

Java中乱码向来是让人头疼的一件事.原因是其中转码的地方太多了.

jsp 页面,request 参数 ,数据库读取存储, tomcat 设置 ,读取各种文件.这里就不提了.比较常见,网上很多.

 

邮件标题乱码,为什么标题会乱码,查看一下邮件源码.

 

我以为是subject 字符集错了,现在很明显是西欧字符集. 于是就设置subject 

BASE64Encoder enc = BASE64Encoder();  
msg.setSubject("=?UTF-8?B?"+enc.encode(subject.getBytes())+"?=");

查看源码

又尝试了 mailMessage.setHtmlEncoding(htmlEncoding); 

解析字符集改了.但是还是乱码.

猜测是不是这个字符本事有问题,想起是不是jvm 默认字符集作祟.于是查看

System.getProperty("file.encoding").   --->ANSI_X3.4-1968

果然就是它.

启动虚拟机的时候如果没有指定应该是系统默认字符集,查看系统字符集

locale -a
C

好吧! 我不知道C是什么? 难道是china???  哈哈!  估计是一个简码.

查看/etc/sysconfig/i18n

cat  /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"

于是

source /etc/sysconfig/i18n

再查看 locale -a 已经是utf-8.

重启jvm.本以为信心满满.结果jvm的字符集还是没变.

做了这么多操作还是无效,真是惹火了我.可能是我理解的不够彻底.难道是加载先后顺序???于是我只能暴力一点了,修改启动jvm的参数

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"

成功了.

java 中字符集转换有很多.编译 执行期都需要转换.因为java本身是UNICODE.

如果在各种应用场景里就会有更复杂,比如 eclipse,tomcat等等. 需要仔细分析.究竟是那个环节的问题.

分享到:
评论

相关推荐

    Discuz! X1.5.1 简体GBK R20111221.zip

    Discuz X1.5是康盛创想Comsenz推出的一个以社区为基础的专业建站平台,让论坛BBS、个人空间SNS、门户Portal、群组Group、应用开放平台Open Platform充分融合于一体,帮助网站实现一站式服务。  Discuz! X1.5.1 ...

    Discuz! X1.5.1 繁体BIG5 R20111221.zip

    Discuz X1.5是康盛创想Comsenz推出的一个以社区为基础的专业建站平台,让论坛BBS、个人空间SNS、门户Portal、群组Group、应用开放平台Open Platform充分融合于一体,帮助网站实现一站式服务。  Discuz! X1.5.1 ...

    Discuz! X1.5.1 繁体UTF8 R20111221.zip

    Discuz X1.5是康盛创想Comsenz推出的一个以社区为基础的专业建站平台,让论坛BBS、个人空间SNS、门户Portal、群组Group、应用开放平台Open Platform充分融合于一体,帮助网站实现一站式服务。  Discuz! X1.5.1 ...

    Discuz! X1.5.1 简体UTF-8 R20111221.zip

    Discuz X1.5是康盛创想Comsenz推出的一个以社区为基础的专业建站平台,让论坛BBS、个人空间SNS、门户Portal、群组Group、应用开放平台Open Platform充分融合于一体,帮助网站实现一站式服务。  Discuz! X1.5.1 ...

    功能非常全面的一个论坛源码

    - 允许设置最多一次发帖可以同时提交的附件数量 - 对于旧版的图片上传附件,提供升级程序,可以产生新的缩略图(支持TIF PSD等图像文件) - 附件允许插入帖子内容排版,未插入的将自动添加 - 允许修改附件内容,...

    bugzilla使用说明

    导出cvs格式的表格,通过excel打开时,中文会显示乱码,因为bugzill是utf8的编码,在excel中不支持,就是把csv文件转成ascii码就能正常显示的,具体是将cvs文档用记事本或utraledit打开,另存为,格式中选择"ANSI/...

    易语言程序免安装版下载

    修改BUG:超级列表框在属性“整行选择”为真时,鼠标单击第一列右面也会导致第一列中的选择框被选中或取消选中。 21. 修改BUG:Sqlite3数据库支持库中“Sqlite数据库.取错误文本()”返回的文本是UTF-8编码(应是GB...

    手机 pdf 阅读器

    每一次打开UMD时,如果存在UMD书签,则自动导入,为了节约内存,如果超过150个书签,打死都不加了,而且,也不允许用户自己添加(此规则对所有的历史同样有效,即一个历史中,不能保存超过150个书签) 阅读时,具有...

    asp.net知识库

    .NET 2.0 泛型在实际开发中的一次小应用 C#2.0 Singleton 的实现 .Net Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) ASP.NET: State Server Gems 完整的动态加载/卸载程序集的解决方案 ...

    300个注册表优化修改文件

    4.不完全注册表恢复,XP和2000重起机器按F8进入,选择上1次正确配置F Office的亲密接触: 点击浏览该文件 改变Word文档日期的显示格式.reg 将Word插入对象的名称汉化.reg 设置Office的安装位置.reg 设置Word中的...

    微信通源码+wap手机版

    2014.12.04:(独家完美开发,欢迎测试)独创分享朋友圈和朋友返积分功能,后台可以设置返多少,一天可以返多少次,赠送积分记录后台清晰可见。积分可以搭配本地开发的大转盘和砸金蛋功能使用效果最好!同时兼容上下级...

Global site tag (gtag.js) - Google Analytics