关于JSP中日文乱码问题的解决

luyang1016 2007-06-14 05:19:02
说明:由于乱码问题造成的原因可能有很多种,而且不同的环境下面,结果也不一样。
本人一直致力于找出一套完整的,万能的解决方案,希望各位能够共同讨论。

第一部分:
关于日文编码,目前比较使用的比较多的是Shift_js和windows-31J.

Shift_js和windows-31J的区别,参见:http://blog.csdn.net/luyang1016/archive/2007/06/14/1652469.aspx

对于一般表单提交的乱码,处理无非就是在jsp中加上3句话。

<%@ page language="java" contentType="text/html;charset=Windows-31J"%>
表示jsp的编码是 Windows-31J

<meta http-equiv="Content-Type" content="text/html; charset=SJIS">
表示jsp上固定项目,是SJIS的,固定项目既然是固定字符,一般无需用Windows-31J

<% request.setCharacterEncoding("Windows-31J"); %>
这个request都给他设上编码

以上处理,紧紧是最简单的处理,据说可以通过web.xml的配置来进行管理的,如何配置web.xml,暂时没研究过。


第二部分:
关于url里面传递日文参数造成的乱码问题解决方案

一般将所需要做为参数的字符窜进行转码就可以了

例子: String param1= URLEncoder.encode( “陸楊”,"Windows-31J");

特别注意: 对于 encode过的字符集,按照道理来说是需要URLDecoder.decode()解析之后才能使用的。
但是好像在下一个画面中使用 :request.getParameter("param1"); 得到的结果还是"陸楊"
不知道是不是servelet内部已经作过转换了。
这个问题希望高人予以赐教。

如果上面的解决方案不能解决你的问题,而且你有是使用tomcat作为Apserver的话,
可以尝试一下下面的方法解决。


在tomcat的server.xml中,加入URIEncoding="Windows-31J
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on the port specified during installation -->
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="Windows-31J"/>


以上方法仅供参考。
问题希望高人予以解答,不甚感激

...全文
421 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luyang1016 2007-06-18
  • 打赏
  • 举报
回复
!
shan1119 2007-06-15
  • 打赏
  • 举报
回复
学习.
luyang1016 2007-06-15
  • 打赏
  • 举报
回复
帖子的确不好,我希望有点心得的人都能在上面留个记号,交流一下。
refyl 2007-06-14
  • 打赏
  • 举报
回复
问题呢?
luyang1016 2007-06-14
  • 打赏
  • 举报
回复
介绍经验?
====
不是,是交流
li_d_s 2007-06-14
  • 打赏
  • 举报
回复
介绍经验?
这是一个胖子 2007-06-14
  • 打赏
  • 举报
回复
补充一下
在tomcat的server.xml中,加入URIEncoding="Windows-31J
只能解决用get提交,
用post的话,就要用<% request.setCharacterEncoding("Windows-31J"); %>


new String(request.getParameter("username").getBytes("ISO_8859_1"), "GBK");就都可以解决了,因为tomcat内部是ISO_8859_1,不过上面的两中方式就不要加了

三种方式是独立的

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧