在做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");

相关文章:

  • 2021-12-05
  • 2022-02-08
  • 2021-06-07
  • 2021-12-18
  • 2022-02-25
  • 2021-11-13
  • 2021-10-07
猜你喜欢
  • 2021-06-25
  • 2021-07-02
  • 2022-12-23
  • 2021-12-29
  • 2021-03-30
  • 2021-09-18
相关资源
相似解决方案