中文编解码问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中文编解码问题相关的知识,希望对你有一定的参考价值。
在做EIP审批接口是遇到中文编解码问题,现在将编解码过程记录如下:
前端javascript:
encodeURIComponent(string)
后端Java:
string = new String(string.getBytes("ISO8859-1"), "UTF-8");
附注(引用地址:http://blog.csdn.net/kalision/article/details/8640793):
发现原来在对后台java程序里的string赋值的时候,本身已经使用了一次解码(servlet对http头进行了一次解码?),不过解码的结果依然不对。所以我们可以在页面上进行两次编码操作,这样后台自动的那次就可以抵消掉一次,然后在使用java.net.URLDecoder.decode(string,"UTF-8");进行一次解码就好了。
正确的代码:
JavaScript:
encodeURIComponent(encodeURIComponent(seartext));
java:
java.net.URLDecoder.decode(searchtext,"UTF-8");
另外还有一种方法是JavaScript进行一次编码,后台java处理代码:
String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8");
以上是关于中文编解码问题的主要内容,如果未能解决你的问题,请参考以下文章
地址错误:(unicode error)'unicodeescape'编解码器无法解码