关于URL传递日文字符乱码问题的解决方案

    技术2022-05-11  90

    乱码问题,一直以来让很多程序员比较头痛 ,关于乱码问题很多文章里都有介绍,也不必累赘。基本概念在:http://www.tingko.net/School/java/20139.htmlhttp://www.tingko.net/School/java/20140.html里面描述的很清楚,而且提供了一套解决方案,对系统掌握编码问题很有帮助。

    本文着重讨论Windows环境下:

    TOMCAT + STRUTS + JSP 模式下URL日文乱码的处理。

    解决方案竟然只是在 Server.xml里面加上URIEncoding,就可以了

          <Connector               port="8080"  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"               enableLookups="false" redirectPort="8443" acceptCount="100"               debug="0" connectionTimeout="20000"                disableUploadTimeout="true"  URIEncoding="Windows-31J"       />

    但是这种改法在linux下面是否有效果,还需要实验.

    websphere下面如何配置,解决乱码问题,还需要再讨论,这篇文章先放在这里以供参考

    // ===================2007/02/13 追加 ==================websphere怎么办?

    服务器是使用ISO-8859-1编码来处理url的,这样自然会出现问题.能找到的解决方法是,通过服务器JVM的启动参数,如加上-Duser.language=zh -Duser.region=CN -Dfile.encoding=UTF-8 -Dclient.override.encoding=UTF-8来设置.而这样似乎不是一个很好的解决方案. 因为它太依赖服务器的配置. 部署到不同服务器, 可能出现不一致的结果. 所以,这个问题应该尽量避免.

    有人说:只要在页面上使用JavaScript的URLEncode()函数先对URL进行编码就没问题了。

    我尝试过了,在tomcat的环境下面,仅仅使用 String ustr1 = URLEncoder.encode(str,"Windows-31J") 并没有什么效果。

     


    最新回复(0)