http 请求数据返回 json 中中文字符为 unicode 编码转汉字转码
来源:互联网 发布:163 pop 端口 编辑:程序博客网 时间:2024/05/22 09:11
http 请求数据返回 json 中中文字符为 unicode 编码转汉字转码
我也遇到过,还是URLDecoder.decode()、和其他办法,可是不管用。也不知道是哪里出问题,也许是开始不应该把 jsonResult 当成字符串吧。
情形一:
Gson会把html标签,转换为Unicode转义字符正确方法:Gson gson = new GsonBuilder().disableHtmlEscaping().create();
情形二:
String str = "\u8eab\u4efd\u8bc1\u53f7\u7801\u4e0d\u5408\u6cd5!"; byte[] bt = str.getBytes("utf-8"); String ret = new String(bt, "utf-8"); System.out.println(ret);
情形三:
java中本身就提供了对Unicode 的url进行解码的方法了:System.out.println(URLDecoder.decode("\u82f9\u679c", "utf-8"));
情形四:
试了几乎所有的方法但都失败了,分装了一个工具类如下,测试正常
/** * http 请求数据返回 json 中中文字符为 unicode 编码转汉字转码 * @param theString * @return */ public static String decodeUnicode(String theString) { char aChar; int len = theString.length(); StringBuffer outBuffer = new StringBuffer(len); for (int x = 0; x < len;) { aChar = theString.charAt(x++); if (aChar == '\\') { aChar = theString.charAt(x++); if (aChar == 'u') { // Read the xxxx int value = 0; for (int i = 0; i < 4; i++) { aChar = theString.charAt(x++); switch (aChar) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': value = (value << 4) + aChar - '0'; break; case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': value = (value << 4) + 10 + aChar - 'a'; break; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': value = (value << 4) + 10 + aChar - 'A'; break; default: throw new IllegalArgumentException( "Malformed \\uxxxx encoding."); } } outBuffer.append((char) value); } else { if (aChar == 't') aChar = '\t'; else if (aChar == 'r') aChar = '\r'; else if (aChar == 'n') aChar = '\n'; else if (aChar == 'f') aChar = '\f'; outBuffer.append(aChar); } } else outBuffer.append(aChar); } return outBuffer.toString(); }
阅读全文
0 0
- http 请求数据返回 json 中中文字符为 unicode 编码转汉字转码
- Unicode编码字符转GBK汉字方法
- 用JavaScript转中文字符为Unicode编码
- Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5(转)
- Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5(转)
- Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5(转)
- Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5(转)
- iOS返回的JSON数据中的unicode 转换为中文
- unicode编码转汉字
- 汉字转Unicode编码
- 汉字转Unicode编码
- Unicode编码转汉字
- unicode编码转汉字
- python unicode编码转中文字符
- Foundation+Log.m,让网络请求回来的中文被unicode编码的数据汉字显示
- C#中将UNICODE编码后的字符转换为汉字
- 汉字转Unicode编码,Unicode编码转汉字
- java unicode编码转汉字
- android_listview_divider
- 理解伯德图- 1/4为什么要使用伯德图
- springboot集成验证码功能
- JAVA 类 : Person
- poj 3304
- http 请求数据返回 json 中中文字符为 unicode 编码转汉字转码
- Android图表库MPAndroidChart(十二)——来点不一样的,正负堆叠条形图
- 关于使用layer弹层插件获取其返回值
- iOS 原生sqlite3的使用
- RDM裸设备映射测试备忘
- SpringBoot整合Mybaties分页插件PageHelper
- Linux dd 命令
- idea spring托管hibernate并生成hibernate 实体类映射
- 5分钟认识Simulink仿真