java URL乱码的解决办法
程序员文章站
2023-12-20 13:23:22
平常我们都是encode 一次,然后直接接受参数
string para = request.getparameter(paramname); 这是因为容器自...
平常我们都是encode 一次,然后直接接受参数
string para = request.getparameter(paramname); 这是因为容器自动能帮我们解码 (decode)
一般来说, encode 的时候,使用的 utf-8(系统的 编码) 那么解码的时候也是使用 utf-8的话, 那么不会出现传说中的乱码~
但是如果 在jsp 页面 使用的utf-8,但是 容器 解码的时候 使用的 别的编码的话,则有可能出现乱码
这个时候.一般可以使用:
string param = new string(request.getparameter(paramname).getbytes("iso-8859-1"),"utf-8");
也能出来.
所有的手段都使了.还是搞不定怎么办?
怎么解决这种多服务器导致的 编码 问题:
假设 字符串: = "阳";
encode 一次 %e9%98%b3
encode 两次 %2525e9%252598%2525b3
在第二次的时候 ,容器自动解的这一次,不管是按 gbk 还是 utf-8 还是 iso-8859-1 都好,都能够正确的得到 %e9%98%b3
那么 只要自身在进行 decode 一次 就能得到 "阳"