您的位置:首页 > 移动开发 > Android开发

解决Android LogCat 输出乱码的问题(转) -相当有用做自动化测试时

2015-09-25 10:37 746 查看

http://www.cnblogs.com/qq78292959/p/3785832.html

解决Android
LogCat 输出乱码的问题(转)

Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的。

可以使用adb的logcat 命令来查看系统日志缓冲区的内容,但是在实际操作时,会发现在CMD的DOS界面上面,使用logcat命令直接输出的中文内容是乱码。如下图:



而这个问题只出现在使用logcat将日志直接打印在当前的DOS窗口的时候会出现;而使用logcat将日志保存为文件,再使用文本编辑工具打开的则显示正常,如图。



很明显是由于DOS窗口显示的编码同logcat日志中不同导致的乱码问题。DOS窗口默认的编码是GBK,而LogCat打印的是UTF-8的编码,所以要设置DOS字符编码:

1、 在当前命令行下输入 chcp 65001,按回车键。这时,当前代码页使用的就是UTF-8编码了。



2、修改窗口属性,改变字体在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。



3、这时候再使用LogCat ,控制台显示中文了、


补充部分字符编码对应代码:
65001——UTF-8
936——简体中文
950——繁体中文
437——美国/加拿大英语
932——日文
949——韩文
866——俄文

附注:
LOGCAT的使用

[adb] logcat [<option>] … [<filter-spec>] …

过滤器语句按照下面的格式描tag:priority … , tag 表示是标签,priority 是表示标签的报告的最低等级. 从上面的tag的中可以得到日志的优先级. 你可以在过滤器中多次写tag:priority

adb logcat TAG1:I TAG2:D *:S

上面表达式的最后的元素 *:S ,,是设置所有的标签为”silent”,所有日志只显示有”View” and “MyApp”的,用 *:S 的另一个用处是 能够确保日志输出的时候是按照过滤器的说明限制的,也让过滤器也作为一项输出到日志中。

例如:

private static final String TAG = "TEST";

Date date = new Date(System.currentTimeMillis());

DateFormat formatter_full = DateFormat.getDateInstance(DateFormat.FULL);

Log.i(TAG, formatter_full.format(date));

DateFormat formatter_long = DateFormat.getDateInstance(DateFormat.LONG);

Log.i(TAG, formatter_long.format(date));

DateFormat formatter_medium = DateFormat.getDateInstance(DateFormat.MEDIUM);

Log.i(TAG, formatter_medium.format(date));

DateFormat formatter_short = DateFormat.getDateInstance(DateFormat.SHORT);

Log.i(TAG, formatter_short.format(date));

然后再CMD 中输入: adb logcat TEST:I *:S

得到 如图



以上部分转载自:http://blog.sina.com.cn/s/blog_93731f0c0100vz0x.html

在Eclipse安装插件解决Eclipse中显示乱码的办法:

后续:

分类: Android
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: