首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android在更新Java 8后以错误的编码方式显示文本

Android在更新Java 8后以错误的编码方式显示文本
EN

Stack Overflow用户
提问于 2016-09-15 14:56:40
回答 2查看 1.9K关注 0票数 8

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

由于一些奇怪的原因,Android将我的硬编码UTF-8字符串视为Windows1251,因此文本被混淆了。

如下所示:

这就是我改变的地方:

代码语言:javascript
复制
compileSdkVersion 24
buildToolsVersion "24.0.2"

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

我试过的是:

  • 在Android设置中更改编码
  • 添加了compileOptions.encoding = 'windows-1251‘和compileOptions.encoding = 'utf-8’
  • 添加了系统变量JAVA_TOOL_OPTIONS:-Dfile.code=UTF8 8

如果我回到Java 7,一切都会好起来的。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-20 14:26:24

这是Jack编译器中的一个bug,请看一下这个帖子

Jack一直在使用默认的VM编码,windows上使用的是windows-1252。所以,您的文本是用UTF-8编码的,由Jack编译器用windows-1252解码的,这就是为什么它们会被混淆的原因。

直到现在,Gradle Plugin还不支持API来设置解码格式,所以我们需要等待.

票数 6
EN

Stack Overflow用户

发布于 2016-09-21 14:07:11

我在Windows中也有同样的问题(但Mac没有)。这一行解决了我的问题(将其放在项目的gradle.properties中):

代码语言:javascript
复制
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

请注意,此部分更改编码:

代码语言:javascript
复制
-Dfile.encoding=UTF-8
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39514276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档