Android 解决使用Log打印日志的时候中文是乱码(unicode)
来源:互联网 发布:魔眼软件 编辑:程序博客网 时间:2024/04/30 12:53
在开发APP过程中经常会打印出网络获取的数据,但这时你会发现打印出来的log是Unicode格式:
{"state":{"code":10200,"msg":"\u83b7\u53d6\u6210\u529f"},"data":{}}
看不出是什么中文内容,希望下面方法可以帮助大家解决问题。
下面方法在处理时会影响小小性能,见意控制使用!
public static String unicodeToUTF_8(String src) { if (null == src) { return null; } System.out.println("src: " + src); StringBuilder out = new StringBuilder(); for (int i = 0; i < src.length();) { char c = src.charAt(i); if (i + 6 < src.length() && c == '\\' && src.charAt(i + 1) == 'u') { String hex = src.substring(i + 2, i + 6); try { out.append((char) Integer.parseInt(hex, 16)); } catch (NumberFormatException nfe) { nfe.fillInStackTrace(); } i = i + 6; } else { out.append(src.charAt(i)); ++i; } } return out.toString(); }
测试DEMO:
package cyy.demo;public class Test { private static final String SRC = "\"state\":{\"code\":10200,\"msg\":\"\\u83b7\\u53d6\\u6210\\u529f\"},\"data\":{}}"; public static void main(String[] args) { String out = unicodeToUTF_8(SRC); System.out.println("out: " + out); }}
OUTPUT:
src: "state":{"code":10200,"msg":"\u83b7\u53d6\u6210\u529f"},"data":{}}out: "state":{"code":10200,"msg":"获取成功"},"data":{}}
原理:
Unicode 编码转UTF-8
Unicode它用两个字节来编码一个字符, 比如汉字”经”的编码是0x7ECF,注意字符码一般用十六进制来 表示。
所以获取到16进制之后转成10进制再强转char类型即可!
(char) Integer.parseInt(hex, 16)
0 1
- Android 解决使用Log打印日志的时候中文是乱码(unicode)
- Android中吐司Toast、打印日志Log的使用
- Android Log 日志调试(打印日志)
- android打印log日志
- 解决p42svn中文log乱码的问题
- 解决爱加密加固之后使用xposed hook的时候log打印不出来的问题
- 如何解决log4j打印日志出现中文乱码
- log日志的打印
- Android http get请求里中文是乱码的解决(其中一种情况)
- Android Log日志规则打印
- centos 解决在编译的时候打印乱码的问题
- android学习笔记——灵活使用Log打印日志
- 在Android应用中使用Log打印日志信息
- 解决xcode9之后log打印不出中文的问题
- 使用struts2 时候乱码问题的解决。
- android 用get 方式提交到 服务器的时候中文乱码解决
- 如何解决cut off中文字符(unicode)产生的乱码
- JNI日志调试LOG和中文乱码
- 版本校验,正则分享
- 常用插件
- nginx、fastCGI、php-fpm关系梳理
- NetRiver - IPv6协议转发实验
- 十一章 上机练习4 + 5
- Android 解决使用Log打印日志的时候中文是乱码(unicode)
- 安卓定时通知的研究与实现思路
- Assign Cookies(分蛋糕)
- 深度学习应用
- oracle数据库导入导出之imp,exp,impdp,expdp等工具的使用
- 在ubuntu16.04下载&编译android源代码
- socket 基本套接字1
- C# 第10章
- 2016.11.25笔记