欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

json 特殊字符处理

程序员文章站 2022-07-07 13:09:05
...
使用URLEncoder.encode(value, "utf-8")编码,之后再以URLDecoder.decode(value, "utf-8");进行解码

但是在解码时
使用URLDecoder.decode() 方法接收参数时如果参数中含有“%”这个字符,就会抛异常 java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern -,
上面的字符串中'%'是一个中文字符'是',而转换的实现是将%后面的两个字符一起转为一个16进制数。拿"%是"来转换数字,肯定会有NumberFormatException异常。

类似的如果请求字符串中有'+',也会有问题。因为'+'被当做空格使用了。一个解决办法就是将%替换为%25。
data = data.replaceAll("%(?![0-9a-fA-F]{2})", "%25"); 
data = data.replaceAll("\\+", "%2B"); 
相关标签: json 特殊字符