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

来源:互联网 发布:网络扫描工具 安卓 编辑:程序博客网 时间:2024/05/22 12:49

一般情况下,在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^

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

 

原创粉丝点击