Java中乱码向来是让人头疼的一件事.原因是其中转码的地方太多了.
jsp 页面,request 参数 ,数据库读取存储, tomcat 设置 ,读取各种文件.这里就不提了.比较常见,网上很多.
邮件标题乱码,为什么标题会乱码,查看一下邮件源码.
Subject: =?ANSI_X3.4-1968?B?Pz8/Pz8=?= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_21_1885302116.1359975400518" ------=_Part_21_1885302116.1359975400518 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit
我以为是subject 字符集错了,现在很明显是西欧字符集. 于是就设置subject
BASE64Encoder enc = BASE64Encoder(); msg.setSubject("=?UTF-8?B?"+enc.encode(subject.getBytes())+"?=");
查看源码
Subject: =?UTF-8?B?Pz8/Pw==?=
又尝试了 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是康盛创想Comsenz推出的一个以社区为基础的专业建站平台,让论坛BBS、个人空间SNS、门户Portal、群组Group、应用开放平台Open Platform充分融合于一体,帮助网站实现一站式服务。 Discuz! X1.5.1 ...
Discuz X1.5是康盛创想Comsenz推出的一个以社区为基础的专业建站平台,让论坛BBS、个人空间SNS、门户Portal、群组Group、应用开放平台Open Platform充分融合于一体,帮助网站实现一站式服务。 Discuz! X1.5.1 ...
Discuz X1.5是康盛创想Comsenz推出的一个以社区为基础的专业建站平台,让论坛BBS、个人空间SNS、门户Portal、群组Group、应用开放平台Open Platform充分融合于一体,帮助网站实现一站式服务。 Discuz! X1.5.1 ...
Discuz X1.5是康盛创想Comsenz推出的一个以社区为基础的专业建站平台,让论坛BBS、个人空间SNS、门户Portal、群组Group、应用开放平台Open Platform充分融合于一体,帮助网站实现一站式服务。 Discuz! X1.5.1 ...
- 允许设置最多一次发帖可以同时提交的附件数量 - 对于旧版的图片上传附件,提供升级程序,可以产生新的缩略图(支持TIF PSD等图像文件) - 附件允许插入帖子内容排版,未插入的将自动添加 - 允许修改附件内容,...
导出cvs格式的表格,通过excel打开时,中文会显示乱码,因为bugzill是utf8的编码,在excel中不支持,就是把csv文件转成ascii码就能正常显示的,具体是将cvs文档用记事本或utraledit打开,另存为,格式中选择"ANSI/...
修改BUG:超级列表框在属性“整行选择”为真时,鼠标单击第一列右面也会导致第一列中的选择框被选中或取消选中。 21. 修改BUG:Sqlite3数据库支持库中“Sqlite数据库.取错误文本()”返回的文本是UTF-8编码(应是GB...
每一次打开UMD时,如果存在UMD书签,则自动导入,为了节约内存,如果超过150个书签,打死都不加了,而且,也不允许用户自己添加(此规则对所有的历史同样有效,即一个历史中,不能保存超过150个书签) 阅读时,具有...
.NET 2.0 泛型在实际开发中的一次小应用 C#2.0 Singleton 的实现 .Net Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) ASP.NET: State Server Gems 完整的动态加载/卸载程序集的解决方案 ...
4.不完全注册表恢复,XP和2000重起机器按F8进入,选择上1次正确配置F Office的亲密接触: 点击浏览该文件 改变Word文档日期的显示格式.reg 将Word插入对象的名称汉化.reg 设置Office的安装位置.reg 设置Word中的...
2014.12.04:(独家完美开发,欢迎测试)独创分享朋友圈和朋友返积分功能,后台可以设置返多少,一天可以返多少次,赠送积分记录后台清晰可见。积分可以搭配本地开发的大转盘和砸金蛋功能使用效果最好!同时兼容上下级...