http 请求数据返回 json 中中文字符为 unicode 编码转汉字转码
2017-12-13 16:56
721 查看
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 4000 '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(); }
相关文章推荐
- Foundation+Log.m,让网络请求回来的中文被unicode编码的数据汉字显示
- Java使用百度API 返回JSON数据为unicode编码,怎么转化为中文?
- 微信小程序,请求php后台返回json数据多出隐藏字符问题
- Jmeter响应的数据是unicode编码格式,怎么转成中文字符显示
- Http Post请求提交json格式数据工具类,解决请求参数中文乱码问题
- HTTP协议post请求返回json数据
- C# winform端 通过HttpWebRequest进行post和get请求,数据格式为json,后台java端接收,其中有关传输特殊字符(\t,\r,',\n,n)等处理
- PHP返回JSON数据及中文编码问题的解决方案
- UTF-8,Unicode,GBK,希腊字母读法,ASCII码表,HTTP错误码,URL编码表,HTML特殊字符,汉字编码简明对照表
- 如何使得中文不被 json_encode 不编码成 unicode PHP 浏览:9722 2014年08月14日 使用 php 自带的 json_encode 函数对数据进行编码时,中文都会变成
- UTF-8,Unicode,GBK,希腊字母读法,ASCII码表,HTTP错误码,URL编码表,HTML特殊字符,汉字编码简明对照表
- C# DES 加密/解密,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- ajax请求数据,Json返回到页面的数据出现中文乱码问题。
- spring mvc 发送http post请求返回的中文数据乱码
- Android使用HttpURLConnection请求网络返回JSON数据并解析
- http请求返回并解析json数据
- python中文utf8编码后是占3个字符,unicode汉字为2字节
- c#将http调用返回额json中的有关中文的unicode转换为中文
- python中文utf8编码后是占3个字符,unicode汉字为2字节
- HttpClient 发送get请求并返回Json数据