Android studio运行时乱码 编码问题 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?

 编译的时候老是出现如下错误:

MainActivity.java:24: 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?

看也看不懂,就知道是编码出现了问题。一般的思路是,找到setting


找到File Encodings节点,右边有三项,都设为UTF-8,在编译一下,还是出错.... 我就纠结了

 网上搜了一下,有一个答案:

这主要是gradle没有支持UTF-8编码。找到的解决方案是在build.gradle配置文件中末尾加入一句脚本即可解决,脚本内容如下: 
`//设置编码 
tasks.withType(Compile) { 
options.encoding = "UTF-8" 
} ` 

还是出错.... 我就纠结了..最后才发现:

Android studio IDE 右下角有个神奇的提示:


原来是这个东西在作怪,有些文件是UTF-8编码,有些是GBK,但是编译时使用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如下设置


  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值