Android studio 中子模块的字符集错误

Mar*_*eth 4 module character-encoding android-studio

我在 Android Studio 中有一个从 eclipse 导入的 Android 应用程序。\n除了 android 模块之外,该项目还包含 java 模块。

\n\n

java 模块处理字符集错误,android 模块处理正确。\n我在 Activity 和子模块类中实现了此方法:

\n\n
public String getUmlaute() {\n    return "\xc3\xb6\xc3\xa4\xc3\xbc\xc3\x9f\xc3\x96\xc3\x84\xc3\x9c " + Charset.defaultCharset();\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
submoduleClass.getUmlaute() + "--" + getUmlaute();\n
Run Code Online (Sandbox Code Playgroud)\n\n

回报

\n\n
\xc3\x83\xc2\xb6\xc3\x83\xc2\xa4\xc3\x83\xc2\xbc\xc3\x83\xc5\xb8\xc3\x83\xe2\x80\x93\xc3\x83\xe2\x80\x9e\xc3\x83\xc5\x93 java.nio.charset.CharsetICU[UTF-8] -- \xc3\xb6\xc3\xa4\xc3\xbc\xc3\x9f\xc3\x96\xc3\x84\xc3\x9c java.nio.charset.CharsetICU[UTF-8]\n
Run Code Online (Sandbox Code Playgroud)\n\n

所有文件都是 UTF-8 编码的。Android Studio 和 notepad++ 确认了这一点以及字母的正确性。

\n\n

Android Studio 设置Android Studio 设置

\n\n

我都尝试了,清除子项目默认编码并将其设置为UTF-8。没有不同。

\n\n

这里出了什么问题?是否缺少编码选项?

\n

Mar*_*eth 5

终于解决了,但是很奇怪。我添加了

compileJava.options.encoding = 'UTF-8'
Run Code Online (Sandbox Code Playgroud)

到每个 java build.gradle 文件。

我添加了

android {
    compileOptions.encoding = "UTF-8"
Run Code Online (Sandbox Code Playgroud)

到 android build.gradle 文件。

在“设置”->文件编码中,我将 Java 模块的默认编码设置为 windows-1252。

这就成功了。文件仍然是utf-8

可能是windows文件系统问题。顺便说一句,这是 NTFS。