URL请求中文符号“乱码”(解码转码)解决方式
Posted 404code
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL请求中文符号“乱码”(解码转码)解决方式相关的知识,希望对你有一定的参考价值。
有的字符在url中传递的时候回编码(可能是自动的)将其符号转变为%加上ASCII码;如果在客户端或者服务端接收到的时候没有解码就会出现类似乱码的问题;其实不然只是没有进行解码
附部分编码规则
十六进制值 | |||
1. | + | URL 中+号表示空格 | %2B |
2. | 空格 | URL中的空格可以用+号或者编码 | %20 |
3. | / | 分隔目录和子目录 | %2F |
4. | ? | 分隔实际的 URL 和参数 | %3F |
5. | % | 指定特殊字符 | %25 |
6. | # | 表示书签 | %23 |
7. | & | URL 中指定的参数间的分隔符 | %26 |
8. | = | URL 中指定参数的值 | %3D |
这种情况就需要解码了,解决方式如下
java中的转码,这里需要自己对str也就是url的字符串进行下非空判断如果为空的话返回个空字符串
private final static String ENCODE = "UTF-8"; //自己的编码格式
public static String getURLEncoderString(String str) { String result = ""; if (null == str) { return ""; } try { result = java.net.URLEncoder.encode(str, ENCODE); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return result; }
java中的解码
public static String getURLDecoderString(String str) { String result = ""; if (null == str) { return ""; } try { result = java.net.URLDecoder.decode(str, ENCODE); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return result; }
javastript中的转码
escape(String s)
javastript中的解码
unescape(String s)
以上是关于URL请求中文符号“乱码”(解码转码)解决方式的主要内容,如果未能解决你的问题,请参考以下文章