云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 解决java中文问题

解决java中文问题

  • 62 次阅读
  • 3 次下载
  • 2026/4/26 0:17:50

解决java中文问题

Last printed 4/28/2013 3:00:00 PM 。Last saved by ibm

解决java中文问题

导言................................................................................................................................. 1 环境................................................................................................................................. 1 解决之道.......................................................................................................................... 1

一.

jsp中文显示 ................................................................................................... 1 1. 往地址栏直接输入中文名 ............................................................................ 1 2. 通过超级连接传输....................................................................................... 2 3. 通过ActionForm传输.................................................................................. 2 4. Web服务器URIEncoding............................................................................. 2 5. Js里传参数 ................................................................................................. 2 二. 三.

数据库中文..................................................................................................... 3 邮件中文 ........................................................................................................ 3 1. 发中文名附件.............................................................................................. 3 2. 收中文名附件.............................................................................................. 3 四.

soap消息中文 ................................................................................................. 5 1. Base64编码 ................................................................................................ 5 2. Unicode编码 ............................................................................................... 5 五. 浏览器显示中文名文件 ................................................................................... 5 六. 七.

上传中文名文件.............................................................................................. 6 多语言混显问题.............................................................................................. 6

参考资料.......................................................................................................................... 7

导言

编写java方面的应用程序难点之一就是中文如何解决。本文就这个问题作了一些探讨。

环境 解决之道

一. jsp中文显示

1. 往地址栏直接输入中文名

如:输入http://localhost:8888/UUM/tree.do?type=ou&dn=ou=测试公司,dc=cmhk,dc=com

Page 1 of 7

2013-4-28

作者:黄伟平

解决java中文问题

Last printed 4/28/2013 3:00:00 PM 。Last saved by ibm

String dn=request.getParameter(\

dn=new String(dn.getBytes(\显示中文

2. 通过超级连接传输

如:

String dn=request.getParameter(\

dn=new String(dn.getBytes(\

3. 通过ActionForm传输

选择一:使用编码过滤器转换成中文 选择二:编码转换

String dn = form.getDn();

dn = new String(dn.getBytes(\

4. Web服务器URIEncoding

默认为ISO-8859-1,有必要时可以修改。参见浏览器显示中文名文件

5. Js里传参数

比如: var str=\

if(document.ws.dns.value!=\ str = document.ws.dns.value+\

}

var rt=window.showModalDialog( \测试公司,dc=cmhk,dc=com\

str,

\

if(rt!=null&&rt!=\ var ss = rt.split(\

document.ws.dns.value=ss[0]; document.ws.names.value=ss[1];

document.ws.to.value=ss[1]; }

在ldapFrame.jsp里就要作如下转换,才能得到正确的中文(与一.1类似)

作者:黄伟平

Page 2 of 7

2013-4-28

解决java中文问题

Last printed 4/28/2013 3:00:00 PM 。Last saved by ibm

String dn = new String(request.getParameter(\

二. 数据库中文

数据库字符编码与传入的数据编码保持一致就可以了。

三. 邮件中文 1. 发中文名附件

@messageBodyPart.setFileName(MimeUtility.encodeWord(fileName));

@MimeBodyPart.setFileName(new String(file.getName().getBytes(), \

@JavaMail能很好的支持中文,但在测试过程中发现使用JavaMail发带有中文文件名的 附件时,文件名是乱码,经测试与查看源文件发现,是在JavaMail包里的一个写邮件 的方法没有考虑国际化因素,对双字节或多字节的字符没有考虑。即在 com.sun.mail.util.LineOutputStream调用 com.sun.mail.util.ASCIIUtility.getBytes(String s);

此方法直接将字符串转化成字符然后转换成字节。其实在String类里的getBytes() 方法就直接可以按照系统缺省的编码正确转换成字节码。

解决方法:将com.sun.mail.util.LineOutputStream中调用ASCIIUtility.getBytes(String s); 方法的部分改为s.getBytes()解决了此问题。 用

LineOutputStream.class

javamail

Com/sun/mail/util/LineOutputStream.class文件即可

2. 收中文名附件

现在研究javamail的人越来越多,现在我就谈谈在javamail中大家都会遇到的附件中文问题,由于sun的java的中文问题,导致当附件是中文时将出现乱码,导致程序异常,如何避免呢??我在学习javamail时采用如下方法首先对邮件体进行分析,首先判断邮件体是否有附件: Object out_content = message[i].getContent();

if (!(out_content instanceof Multipart)){//不是复合邮件体,既是不带附件。 partname = new String[0]; return partname; }

如果是复合邮件体,那么就可以调用如下的方法取得中文文件名: public static String getISOFileName(Part body){

//设置一个标志,判断文件名从Content-Disposition中获取还是从Content-Type中获取 boolean flag=true; if(body==null){ 作者:黄伟平

Page 3 of 7

2013-4-28

解决java中文问题

Last printed 4/28/2013 3:00:00 PM 。Last saved by ibm return null; }

String[] cdis; try{

cdis=body.getHeader(\ }

catch(Exception e){ return null; }

if(cdis==null){ flag=false; } if(!flag){ try{

cdis=body.getHeader(\Type\ }

catch(Exception e){ return null; } }

if(cdis==null){ return null; }

if(cdis[0]==null){ return null; }

//从Content-Disposition中获取文件名 if(flag){

int pos=cdis[0].indexOf(\ if(pos<0){ return null; }

//如果文件名带引号

if(cdis[0].charAt(cdis[0].length()-1)=='\

return cdis[0].substring(pos+10,cdis[0].length()-1); }

return cdis[0].substring(pos+9,cdis[0].length()); }else{

int pos=cdis[0].indexOf(\ if(pos<0){ return null; }

//如果文件名带引号

if(cdis[0].charAt(cdis[0].length()-1)=='\作者:黄伟平

Page 4 of 7

2013-4-28

搜索更多关于: 解决java中文问题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

解决java中文问题 Last printed 4/28/2013 3:00:00 PM 。Last saved by ibm 解决java中文问题 导言................................................................................................................................. 1 环境................................................................................................................................. 1 解决之道...................

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com