有的时候我们调试Android应用可能涉及中文内容,但是在DDMS的Logcat下显示中文时为乱码,这里大家可以通过自己编译SDK来解决,有关编译Android SDK方法可以参考如何编译Windows平台的Android SDK 下面一起看下哪个代码存在问题吧。
在Android源码DDMS中我们找到 MultiLineReceiver 这个类,对应GIT开源在development/tools/ddms/libs/ddmuilib/src/com/android/ddmuilib/,最主要的就是有关String实例化时最后一个参数,看到ISO-8859-1了吧,我们将这个换成gb2312就可以很好的显示简体中文了,繁体嘛可以考虑big5这种编码等等了,当然了Android123推荐大家使用UTF-8这种兼容性最好的。

public abstract class MultiLineReceiver implements IShellOutputReceiver {

public final void addOutput(byte[] data, int offset, int length) {
if (isCancelled() == false) {
String s = null;
try {
s = new String(data, offset, length, "ISO-8859-1"); //问题在这里,ISO-8859-1就是Latin-1我们俗称西欧语言
} catch (UnsupportedEncodingException e) {
// normal encoding didn't work, try the default one
s = new String(data, offset,length);
}

// ok we've got a string
if (s != null) {
// if we had an unfinished line we add it.
if (mUnfinishedLine != null) {
s = mUnfinishedLine + s;
mUnfinishedLine = null;
}


mArray.clear();
int start = 0;
do {
int index = s.indexOf("\r\n", start);

// if \r\n was not found, this is an unfinished line
// and we store it to be processed for the next packet
if (index == -1) {
mUnfinishedLine = s.substring(start);
break;
}


String line = s.substring(start, index);
if (mTrimLines) {
line = line.trim();
}
mArray.add(line);

// move start to after the \r\n we found
start = index + 2;
} while (true);

if (mArray.size() > 0) {

String[] lines = mArray.toArray(new String[mArray.size()]);

// send it for final processing
processNewLines(lines);
}
}
}
}
}

更多相关文章

  1. Android(安卓)硬解码 MediaCodec 遇到的(部分手机绿屏)API21
  2. 安卓应用开发基础:android Dev Guide的Application Fundamentals
  3. Android官方开发文档Training系列课程中文版:管理音频播放之管理
  4. android中TextView中文字体粗体的方法 (android:textStyle="bold
  5. Android访问Tomcat错误以及mp3player项目乱码问题解决
  6. 中文手写输入 (一)
  7. android DES 字符串加密后 解密乱码
  8. Android多语言适配繁体中文
  9. android TextView设置中文字体加粗实现方法

随机推荐

  1. Android材料设计兼容函数库(Design Suppor
  2. Android性能优化之系统显示原理
  3. android 测量控件视图的方法
  4. 2016年 代做安卓毕业设计 Android毕业设
  5. [置顶] android实现向右滑动返回功能
  6. Android上利用SDK的BluetoothAPI实现传送
  7. Android(安卓)的网络判定(网络连接类型和
  8. Android(安卓)使用MVPHelper工具生成,MVPD
  9. Android(安卓)关于接口回调原理的解析
  10. 在Android(安卓)Studio上搭建OpenCV 开发