关闭

android开发 在adb shell下查询中文字符乱码及logcat中文乱码的问题

标签: androidshellnullstringlinux测试
2474人阅读 评论(1) 收藏 举报
分类:
传说C使用ansi编码导致在adb shell下查询中文字符乱码? 求证 这个应该是运行环境问题吧
在 linux 下很正常(默认utf8编码)01.coldljy@linux:~/dev/sourcery> adb shell mkdir /data/测试
02.coldljy@linux:~/dev/sourcery> adb shell ls /data/
03.测试
04.tmp
05....
复制代码有空再到 windows 下试下  你说的是中文字符串吧
C语言的宽字符做的不是很好
char * str = "12434";
这个str存的什么字符内容,取决于这个文件的编码格式(没记错的话),你用gb2312编码的,里面就是gb2312的字符.
你这个gb2312的字符,在log里面直接打印,肯定会乱码的.


我在网上看了一下,貌似Android的__android_log_write的参数是char*么...现在问题就变得恶心了一点.可能涉及到编码问题.
理论上他的ndk log也支持多字符集的,你可能需要多尝试几次,看那一种特定的编码可以出来中文.
还有一种可能就是,直接就不知道其他字符集的,除了Latin1

我刚看了一下源码和文档

01.    public static int d(String tag, String msg) {

02.        return println(DEBUG, tag, msg);
03.    }
04.    public static native int println(int priority, String tag, String msg);

复制代码在来看这个println怎么实现的:

103 static jint android_util_Log_println(JNIEnv* env, jobject clazz,
104     jint priority, jstring tagObj, jstring msgObj)
105 {
106     const char* tag = NULL;
107     const char* msg = NULL;
108 
109     if (msgObj == NULL) {
110         jclass npeClazz;
111 
112         npeClazz = env->FindClass("java/lang/NullPointerException");
113         assert(npeClazz != NULL);
114 
115         env->ThrowNew(npeClazz, "println needs a message");
116         return -1;
117     }
118 
119     if (tagObj != NULL)
120         tag = env->GetStringUTFChars(tagObj, NULL);
121     msg = env->GetStringUTFChars(msgObj, NULL);
122 
123     int res = android_writeLog((android_LogPriority) priority, tag, msg);
124 
125     if (tag != NULL)
126         env->ReleaseStringUTFChars(tagObj, tag);
127     env->ReleaseStringUTFChars(msgObj, msg);
128 
129     return res;
130 }


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

CMD命令进行adb logcat时显示一堆的乱码的解决办法

今天用CMD命令进行adb logcat时显示一堆的乱码,乱码如下: C:\Users\Administrator>adb logcat -s logcat --------- beginning ...
  • lqxandroid2012
  • lqxandroid2012
  • 2015-08-26 13:08
  • 3626

linux shell中文乱码问题

linux shell中文乱码问题经常碰到, 以前也碰到过, 就听之任之了。 实际上, 有很多方法可以解决这个显示问题, 下面我来提供一种, 聊作记录: taoge@localhost test> l...
  • stpeace
  • stpeace
  • 2015-12-17 22:53
  • 4192

pc(电脑)用java通过adb操作android手机发短信及中文乱码解决

最近想用java调用android手机的短信功能。已开始用一下方法实现: adb -s emulator-5554 shell am start -a android.intent.acti...
  • wangxu_xuxu
  • wangxu_xuxu
  • 2014-01-21 10:21
  • 1676

adb 和 shell、Logcat 常用命令

adb adb devices  查询模拟器/设备实例 adb -s  发送命令 adb install  安装软件 adb -s emulator-5556 i...
  • sun___shine
  • sun___shine
  • 2016-08-05 18:38
  • 1997

Android Studio 中文乱码问题

Android Studio中的乱码分好几种,一是IDE的不同窗口里显示乱码,如:logcat筛选框,SVN提交的注释框。二是代码里设置中文,到了真机UI上就显示的乱码,如:xxx.setText("...
  • gc_gongchao
  • gc_gongchao
  • 2015-09-07 15:32
  • 2462

SSH Secure Shell Client中文乱码的解决方法

SSH Secure Shell Client中文乱码的解决方法  自己是使用linux下面的方法而已。 SSH Secure Shell Client中文乱码的解决方法 Pos...
  • tankaro
  • tankaro
  • 2015-09-16 09:20
  • 350

本文介绍如何在 shell 命令行中过滤 adb logcat 输出的几个小技巧。

本文介绍如何在 shell 命令行中过滤 adb logcat 输出的几个小技巧。 开发当中经常看到别人的 log 如洪水般瞬间刷满了屏幕,对自己有用的信息都被淹没了,影响心情也影响效率。下面是...
  • weidawei0609
  • weidawei0609
  • 2014-06-13 17:47
  • 1388

debian GUN/linux 中文乱码解决办法,secureCRT中文乱码

问题描述:通过secureCRT通过ls命令查看目录下中文文件命及中文内容时乱码 系统:通过# cat /etc/issue查看版本 Debian GNU/Linux 6.0 \n \l 说明:我的所...
  • johnstrive
  • johnstrive
  • 2013-12-09 21:28
  • 10762

adb 和 shell、Logcat 常用命令

adb devices  查询模拟器/设备实例 adb -s  发送命令 adb install  安装软件 adb -s emulator-5556 install aaa.apk    给某...
  • xundh
  • xundh
  • 2015-05-26 17:49
  • 5748

解决Xshell中文乱码问题

今天在使用Xmanager Enterprise 4里的Xshell连接Linux时候,出现中文乱码问题的解决
  • hsd2012
  • hsd2012
  • 2016-05-11 15:36
  • 2261
    个人资料
    • 访问:10909033次
    • 积分:76578
    • 等级:
    • 排名:第23名
    • 原创:506篇
    • 转载:914篇
    • 译文:4篇
    • 评论:2257条
    打赏
    如果您认为本博客不错,读后觉得有收获,不妨打赏赞助我一下,让我有动力继续写出高质量的博客。



    赠人玫瑰,手有余香。分享技术,传递快乐。

    有心课堂,传递的不仅仅是技术!

    QQ交流群:250468947

    有心课堂会员,请加入VIP QQ交流群:213725333

    github
    我的视频
    博客专栏
    最新评论