解決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 plain copy
 
  1. private static final String TAG = "TEST";  

 

[java]  view plain copy
 
  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中顯示亂碼的辦法:
后續:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM