首页 > 代码库 > Android adb shell 显示不正常的解决方法

Android adb shell 显示不正常的解决方法

在学习安卓过程中,准备使用串口,由于权限上,一直获取不到开发板的root权限。

无奈之下,发现windows下cmd中使用 adb shell,进入开发板的shell模式能正常执行chmod 777 tty*

在开发板中(x210 A8内核),安装了超级控制终端都无权执行chmod 777 tty*,真不明白为何windows的adb shell就能执行。

但使用 adb shell带来一些问题

使用过程中,发现ls语句执行后,显示乱码。如图:

网上更种说法都有。

有的说使用 chcp 65001。就是改变默认的编码格式。默认为 936  ANSI格式,中文GBK。转原文说明如下:

 

一、logcat中文乱码

Android LOGCAT输出是UTF-8编码,而Windows CMD的默认编码设置是GBK。要想正确显示中文,需要设置在WINDOWS CMD窗口的编码设置,以下为设置步骤。
1、打开cmd,执行chcp查看当前代码页
     chcp
    Active code page: 936
2、如果输出结果是936,那么请这行下面一条命令,将当前活动编码设为65001。如果已经是65001,可跳过此步骤
    chcp 65001
3、修改窗口属性,改变字体在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。
至此,配置结束。
 
二、 adb shell  ls乱码解决方法:
 解决方法:
adb shell进入控制台
然后执行以下命令:
alias ls=‘ls --color=never‘
结束,以后再输入ls查看时,都正常了。
不过貌似关闭后,在重新打开,还会出现这个问题,又得建立匿名。现在还不知在哪里能保存下这个配置,等回头有答案,再粘贴出来。
 
实际上。第二种方法就能解决问题,而且会把cmd的编码格式自动转成65001 UTF-8格式。
无论哪种方式,不影响第二次运行cmd窗口。也就是说chcp只对当次cmd窗口有效。 alias ls命令也是