关闭

URL上中文传参乱码解决方案

标签: urlstringtomcat测试googlebyte
1558人阅读 评论(0) 收藏 举报
分类:

      一般情况下,在tomcat/conf文件加下修改server.xml文件,加上URIEncoding="UTF-8",会解决中文乱码问题。不过有时候依然会出现乱码。我就遇见过。然后经过百度,google,基本上回答的都一样,使用URLEncoder编码和URLDecoder方法解码。

一开始使用encoder(String str)进行编码和decoder(String str)进行解码,结果依然发现头痛的乱码。后来再使用encoder(String str,"UTF-8")进行编码和decoder(String str,"UTF-8")进行解码。乱码问题才得以解决。

 

       为了测试encoder和decoder(我指后者带2个参数的)可用性,我把tomcat的URIEncoding="UTF-8"给去掉。结果发现,encoder和decoder的带1个参数的和带2个参数的方法都没用,都是乱码......  不明白中.....

 

       为了在测试编码问题上得到个很稳定的解决方案。我又试着使用new String(byte[] ,str)进行解码编码,结果杯具的发现。连这个也不好使了,我发誓,我曾经用这个解决过url编码问题,这次为什么又不行??

 

      我还记得,为了解决乱码的问题,使用了request.setCharacterEncoding("UTF-8")2次才能正常获取中文,那个汗啊。

 

 

      总之,如果在url上要传递中文的话,使用如下方法包你满意:

      第一步:在tomcat下的server.xml文件中添加URIEncoding="UTF-8";

      第二步:在传递中文前使用URLEncoder.encoder(String str,String charset)方法编码。在接收方使用URLDecoder.decoder(String str,String charset)方法进行解码。

 

      注:以上2步缺一不可哦。^O^

    

 

      另外。项目中传值也容易出现乱码,不过出现乱码问题无非就是编码不一致导致的,所以,力求将项目中所有文件都设置统一编码。文件属性的编码和文件中内容的编码都要设置哦。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:220342次
    • 积分:2440
    • 等级:
    • 排名:第16085名
    • 原创:48篇
    • 转载:5篇
    • 译文:0篇
    • 评论:40条
    友情链接