更新到Java 8后,Android会以错误的编码显示文本 [英] Android displays text in wrong encoding after update to Java 8

查看:155
本文介绍了更新到Java 8后,Android会以错误的编码显示文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已将项目更新为SDK版本24和Java 8,并遇到了一个奇怪的编码问题。



由于某些奇怪的原因,Android会将我的硬编码的UTF-8字符串视为Windows-1251,因此文本会出现乱码。



像这样:



< img src =https://i.stack.imgur.com/rzamR.pngalt =在此输入图像说明>



这是我改变了什么:

  compileSdkVersion 24 
buildToolsVersion24.0.2

compileOptions {
encoding ='utf-8'
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

我尝试过:




  • 在Android Studio设置中更改编码

  • 添加了compileOptions.encoding ='windows-1251'和compileOptions.encoding
    ='utf-8'

  • 添加的系统变量JAVA_TOOL_OPTIONS:-Dfile。 encoding = UTF8



如果我还原回Ja任何想法?

解决方案

这个是Jack编译器中的错误,请查看此发布



Jack一直在使用默认的VM编码,在windows上是windows-1252。所以,您的文本编码为 UTF-8 ,并由Jack编译器用 windows-1252 解码,这就是为什么他们变得乱码。



到目前为止, Gradle Plugin 不支持设置解码格式的API,所以我们需要等待...


I've updated my project to SDK version 24 and Java 8 and encountered a strange encoding issue.

By some strange reason Android treats my hardcoded UTF-8 strings as Windows-1251 and thus the text is garbled.

Like this:

This is what I changed:

compileSdkVersion 24
buildToolsVersion "24.0.2"

compileOptions {
    encoding = 'utf-8'
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

And what I've tried:

  • changed encoding in Android Studio settings
  • added compileOptions.encoding = 'windows-1251' and compileOptions.encoding = 'utf-8'
  • added system variable JAVA_TOOL_OPTIONS:-Dfile.encoding=UTF8

If I revert back to Java 7 everything is ok.

Any ideas?

解决方案

This is a bug in Jack compiler, have a look at this post.

Jack has been using the default VM encoding, which on windows is windows-1252. So, your text is encoded with UTF-8 and decoded with windows-1252 by Jack compiler, and this is why they became garbled.

Until now, Gradle Plugin doesn't support an API to set the decode format, so we need to wait...

这篇关于更新到Java 8后,Android会以错误的编码显示文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆