首页 > 代码库 > 解决Android LogCat 输出乱码的问题(转)

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

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 的另一个用处是 能够确保日志输出的时候是按照过滤器的说明限制的,也让过滤器也作为一项输出到日志中。

例如:

[java] view plaincopy
 
  1. private static final String TAG = "TEST";  

 

[java] view plaincopy
 
  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中显示乱码的办法:
后续: