当前位置:   article > 正文

解决Android LogCat 输出乱码的问题_adb logcat 抓的日志不是utf-8的如何修改

adb logcat 抓的日志不是utf-8的如何修改

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

 

可以使用adblogcat 命令来查看系统日志缓冲区的内容,但是在实际操作时,会发现在CMDDOS界面上面,使用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";

  1. Date date = new Date(System.currentTimeMillis());
  2. DateFormat formatter_full = DateFormat.getDateInstance(DateFormat.FULL);
  3. Log.i(TAG, formatter_full.format(date));
  4. DateFormat formatter_long = DateFormat.getDateInstance(DateFormat.LONG);
  5. Log.i(TAG, formatter_long.format(date));
  6. DateFormat formatter_medium = DateFormat.getDateInstance(DateFormat.MEDIUM);
  7. Log.i(TAG, formatter_medium.format(date));
  8. DateFormat formatter_short = DateFormat.getDateInstance(DateFormat.SHORT);
  9. Log.i(TAG, formatter_short.format(date));


然后再CMD 中输入: adb logcat TEST:I *:S
得到 如图


以上部分转载自:http://blog.sina.com.cn/s/blog_93731f0c0100vz0x.html
在Eclipse安装插件解决Eclipse中显示乱码的办法:
后续:
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/301106
推荐阅读
相关标签
  

闽ICP备14008679号