`
pichcar
  • 浏览: 287815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解决URL中文乱码问题

    博客分类:
  • J2EE
阅读更多
欢迎转载,转载请保留出处: 梦想博客 http://www.study518.com/blog

在URL传递中文时,我们首先就会想到:
java.net.URLEncoder.encode和java.net.URLDecoder.encode

但简单的应用并不能真正解决问题~

在URL直接传递中文,然后再用new String(errs.getBytes("ISO-8859-1"),"UTF-8")进行获取时,如果没有标点符号,获得的字符一般是正确的,但如果有标点的话就会在标点处产生一个乱码;

如果直接用java.net.URLEncoder.encode(String)来传递,再用new String(errs.getBytes("ISO-8859-1"),"UTF-8")获取就可能得到一个全乱码字符串;

即使使用java.net.URLDecoder.encode(String)来解码也会得到一个全乱码字符串;

最标准的方法就是在传递编码时就加入编码字符集:

java.net.URLEncoder.encode(errorMessage,"UTF-8")


尝试以下几种解决方法:  
  1.   request.setCharacterEncoding("GB2312");  
  2.   salesStatusName=java.net.URLEncoder.encode("技术问题"),     然后在Action中使用java.net.URLDecoder.decode(...);  
  3.   salsStatusName   =   new   String(salesStatusName.getBytes("ISO-8859-1"),"GBK");


tomcat       server.xml  
   
  <Connector    
  port="80"                               maxThreads="150"   minSpareThreads="25"   maxSpareThreads="75"  
                                enableLookups="false"   redirectPort="8443"   acceptCount="100"  
                                debug="0"   connectionTimeout="20000"    
                                disableUploadTimeout="true"   URIEncoding="GBK"/>  
   
  加上URIEncoding="GBK"
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics