解决办法:在界面的右下角找到 UTF-8 ,单击之,在d出的列表中选中GBK 在d出框内选中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
①双击如下乱码提示的任意一行,它将会d出一个.java文件给你,比如:我d出的了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如下设置
1、webView.loadUrl();直接显示网页内容(单独显示网络图片),一般不会出现乱码。
2、webView.loadData(data, "text/html", "UTF-8")
loadData主要被设计用来装载URI格式的数据,它不能通过网络来加载内容。网上流传的webview加载中文出现乱码,多数是使用此方法。使用过程中主要有两个问题:
(1)loadData不能加载图片内容,如果想加载图片内容或者获得更强大的Web支持建议使用更强大的loadDataWithBaseURL.
(2) 许多实用loadData方法的朋友都遇到显示乱码的问题,那是因为编码器设置错误导致的。我们知道String类型的数据主要是unicode编码,而WebView一般为了节省资源使用的是UTF-8编码,所以我们在loadData的时候要告诉方法怎样转码。即要告诉它要将unicode编码的内容转成UTF-8编码的内容。有些朋友虽然在loadData的时候设置了编码方式,但是还是显示乱码,这是因为还需要为WebView的text编码指定编码方式。举例如下:
WebView wv = (WebView)findViewById(R.id.webview)
wv.getSettings().setDefaultTextEncodingName(“UTF -8”)
wv.loadData(content, “text/html”, “UTF-8”)
注意为gb2312或gbk
(3).网页说明编码格式
以上两种方法是网上给的比较好的方法,但是我都试了下都没有解决我的乱码问题。 原来我是用LoadData方法来解析html的,但是据说这是官方的一个BUG,不能用来解析中文。所以绕其道而行之,采用loadDataWithBaseURL的方法,其中codeingType设置为utf-8就OK了。3、loadDataWithBaseURL如果单纯显示文字的话可以写webView.loadDataWithBaseURL(null, string, "text/html", "utf-8", null)
如果要显示图片可以写webView.loadDataWithBaseURL(baseUrl, string, "text/html", "utf-8", null)
其中baseUrl为你存储照片的路径,比如:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)