【Android测试】【随笔】在手机里用命令行创建中文文件夹
2015-06-16 11:36
351 查看
◆版权声明:本文出自carter_dream的博客,转载必须注明出处。
转载请注明出处:/article/5247326.html
不知道为啥当时自己写了一段在手机里用命令行创建文件的代码,后来由于需求,新建的文件夹需要用中文表示,因为直观,然后就发现出现诡异的乱码。
尝试了各种的编码格式,最后终于成功了,上图就是各种编码格式出的岔子,第一个为正确的。
好了不多说了,上源码吧
上面的代码在使用时候是这样用的:
其实上面的代码最关键的部分在于 第9行:
首先将cmd转化为byte,然后转化为 ISO-8859-1 的编码格式。
其实难点就在于,如果确定是这种编码格式呢?因为之前我觉得Android手机中只会存在utf-8 和 gb2312的编码格式,但是居然出了这么一个奇葩的编码格式。
那以后遇到这样的怎么办呢?那只能一个一个的尝试了,所以列一下常用的编码格式:
转载请注明出处:/article/5247326.html
不知道为啥当时自己写了一段在手机里用命令行创建文件的代码,后来由于需求,新建的文件夹需要用中文表示,因为直观,然后就发现出现诡异的乱码。
尝试了各种的编码格式,最后终于成功了,上图就是各种编码格式出的岔子,第一个为正确的。
好了不多说了,上源码吧
public void ShellONECommand(String cmd) { ((MainActivity)mainContext).ThreadUpdateLogToUI( "RunShell: " + cmd, CommonVar.LOG_SHOW); try { Process process = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(process.getOutputStream()); cmd = new String(cmd.getBytes(), "ISO-8859-1"); os.writeBytes(cmd + "\n"); os.writeBytes("exit\n"); os.flush(); os.close(); process.waitFor(); } catch (Exception e) { e.getStackTrace(); } }
上面的代码在使用时候是这样用的:
ShellONECommand("mkdir -p /storage/emulated/0/中文文件夹");
其实上面的代码最关键的部分在于 第9行:
cmd = new String(cmd.getBytes(), "ISO-8859-1");
首先将cmd转化为byte,然后转化为 ISO-8859-1 的编码格式。
其实难点就在于,如果确定是这种编码格式呢?因为之前我觉得Android手机中只会存在utf-8 和 gb2312的编码格式,但是居然出了这么一个奇葩的编码格式。
那以后遇到这样的怎么办呢?那只能一个一个的尝试了,所以列一下常用的编码格式:
/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */ "US-ASCII"; /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */ "ISO-8859-1"; /** 8 位 UCS 转换格式 */ "UTF-8"; /** 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序 */ "UTF-16BE"; /** 16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序 */ "UTF-16LE"; /** 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识 */ "UTF-16"; /** 中文超大字符集 */ "GBK"
相关文章推荐
- Android 零碎
- android调用系统拍照
- Android、iPhone和Java三个平台一致的加密工具
- Android 自定义控件
- 关于Android studio打包发布,以及Android签名的获取
- Android自定义控件(状态提示图表) (转)
- 查看Android内存的8中方法
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
- 八款开源Android游戏引擎
- Android首选项
- Android让文本自动滚动实现
- Android开发中的ANR问题如何避免?
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
- android 比较靠谱的图片压缩
- android ContentObserver监听系统短信和备份短信到本地
- 一些有用的学习链接(AndroidStudio)
- Android PowerImageView实现,可以播放动画的强大ImageView
- android Handler 的使用
- android 技术总结 图片优化 sqlite使用 Fragment使用
- 一个帖子掌握android所有控件、ProgressBar 、Android 动画效果、SQLite、四大组件、Android多媒体