扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
是由于DOS窗口显示的编码同logcat日志中不同导致的乱码问题。DOS窗口默认的编码是GBK,而LogCat打印的是UTF-8的编码,所以要设置DOS字符编码:
成都创新互联专注于博山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供博山营销型网站建设,博山网站制作、博山网页设计、博山网站官网定制、微信平台小程序开发服务,打造博山网络公司原创品牌,更为您提供博山网站排名全网营销落地服务。
1, 在当前命令行下输入 chcp 65001,按回车键。这时,当前代码页使用的就是UTF-8编码了。
2, 修改窗口属性,改变字体。在命令行标题栏上点击右键,选择“属性”-“字体””,将字体修改为True Type字体”Lucida Console”,然后点击确定将属性应用到当前窗口。
3,再使用logcat打印日志,就可以正常显示中文字符了。
4, 补充部分字符编码对应代码:
65001——UTF-8
936——简体中文
950——繁体中文
437——美国/加拿大英语
932——日文
949——韩文
866——俄文
一、在eclipse中依次点击Windows-Preference
二、在弹出的对话框中依次点击General-Content Types
三、在右侧的区域内依次点击Text-Java Source File,选中下方区域内的*.java(locked),在下面的Default encoding中填入GBK,点击Update,然后点击OK,这样项目中原来乱码的中文也就不乱码了。
Android Studio 升级到最新版本android-studio-2020.3.1.23(小狐狸)后,项目中的中文文件、Git提交记录乱码了
解决方案(两种):
一、修改字体方案
打开设置:Preferences | Appearance Behavior | Appearance ---Use custom font 选择上即可
二、重装
卸载后重装,注意要删除原来的AS配置
一、android sax库遇到gbk或gb2312编码时
方法1. 可以显示的指明编码比如
InputSource is = new InputSource(inputStream); is.setEncoding("UTF-8");
方法2. 使用InputStreamReader转换 在SDK中可以查看有这样实例化方法,参数二为字符集
InputStreamReader(InputStream in, Charset charset)
具体使用可以是
InputSource is=new InputSource(new InputStreamReader(inputStream,"gb2312"));
有关InputSource的细节, 如果有字符流可用,则解析器将直接读取该流,而忽略该流中找到的任何文本编码声明。如果没有字符流,但却有字节流,则解析器将使用该字节流,从而使 用在 InputSource 中指定的编码,或者另外(如果未指定编码)通过使用某种诸如 XML 规范 中的算法算法自动探测字符编码。如果既没有字符流,又没有字节流可用,则解析器将尝试打开到由系统标识符标识的资源的 URI 连接 。
二、android开发网提倡尽量在服务器上配置使用utf-8编码,虽然显示英文字符较为两非,但是兼容性是最好的,也是国际最主流的标准。
只需要将Android studio的编码设置为UTF-8或者GBK即可。
android studio 文件编码修改方式:
1.打开Setting-Editor-File Encoding 进行编码设置
2.打开module的 build.gradle 文件修改编译器使用的编码
eclipse文件编码设置:
1. 点击windows。
2. 在列表最下点击reference。
3. 在reference界面点击Workspace
4. 在右边的Tex file encoding点击Other。
5. 选择对应编码即可。
6. 建议使用UTF-8编码。
情况一:编辑器内的中文注释乱码。
解决办法:在界面的右下角找到 UTF-8 ,单击之,在弹出的列表中选中GBK 在弹出框内选中Reload
总结:导致这样的原因是你这个.java文件本身是GBK编码的,你当然可以用GBK方式可以读,可是最好把从根本上把这个文件编码成UTF-8的!而且很多人出现这种情况是因为从eclipse复制,或导入文件到了android studio中。Eclipse的时候它可以自动识别,到了as就不可以了故出现这些错误。
情况二:用虚拟机运行应用时APP界面文字乱码。
解决办法:在Gradle Scripts - build.gradle中的如下下图位置添加:
android{compileOptions.encoding="GBK"}
或者
compileOptions.encoding="GBK"
情况三:Gradle Build 中出现如下乱码,且编辑器的中文注释有乱码
需要工具:SublimeText 或者 Notepad++ 或者 EidtPlus 总之是那些能把你的文件改成UTF-8 without DOM 编码的编辑器,本人用的是Sublime Text2
①双击如下乱码提示的任意一行,它将会弹出一个.java文件给你,比如:我弹出的了AbInnerViewPager.java这个文件的编辑窗口,其中的中文注释都是乱码
/**其实下面乱码的每一行代表一处你某个类或其他文件中的中文乱码,一个类可能产生好几行下面那种乱码*/
②在左边的目录框右键那个类-点击show in explorer(就是找到这个文件在电脑中的位置)
③以sublimeText的格式打开这个.java文件,点击File-Save with Encoding-UTF-8
④返回android studio等一下(不用rebuild什么的,文中的乱码自己会变成了正常的中文)
⑤rebuild一下,重复以上步骤,知道把那些GBK格式的文件都改为UTF-8为止
总结:
1、Sublime Text2有个缺点,不能一次全选再改格式!!!虽然可以用ctrl全选然后在Save with Encoding,但最终你会发现只有一个文件改了编码方式而已,而且你可以从sublime界面最下那个提示横栏看到是哪一个,不知为何,可能是我打开的方式有问题吧==!,或者是一个Bug,请后来试过的同学跟我说下你们可以不。。。
2、千万不要用微软自带的记事本来另存为,然后再编码那里改成UTF-8就以为万事大吉,血的教训告诉你!这个UTF-8实际上是UTF-8 with DOM,然后你rebuild后会有如下错误提示,然后你最后还是要改成UTF-8 without DOM
3、最好把以后的文件都以UTF-8保存,查看
File-Setting-File-Editor-File Encodings如下设置
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流