Android Studio 弄乱了巴西-葡萄牙语字符

Android Studio messes up brazilian-portuguese characters

我的项目没有显示任何葡萄牙语字符。当我尝试输入像 "Não" 这样的词时,它 returns Não"。

有趣的是,当我从 res/string.xml 获取字符串时,它正确显示了单词。

知道为什么吗?

到目前为止我已经尝试过但没有成功的事情:

  1. 文件 -> 设置 -> 编辑器 -> 文件环境,我已将所有内容更改为 UTF-8 和其他格式,rebuild/cleaned 项目,它保持不变。

编辑:

我可以在 youtube 上上传一段视频来展示它,如果它对解决方案有帮助的话!

下面是正在发生的事情的图像:

这真的很难解释为什么会这样,我对俄语字符也有同样的看法,但只在某些设备上。我刚刚检查过在 Genymotion 上和你做同样的事情并且它显示正确......根据我的调查,如何显示给定的字符取决于每个设备,但我认为它可能会发生,因为 Android 知道如何使用 Resources,但不知道如何使用代码中的 String。当您为不同的语言创建文件夹时,您不会说默认必须是 English。所以系统会检测并显示。我不确定 100%,但这是我从 doc 中了解到的。

无论如何,要从代码中使用 TextView 中的 String 对象并显示外语(来自英语),我们只有 2 个选项:

1) 为特定 text/Unicode 添加 .ttf 文件 2) html格式

第一个选项的示例:

String s="(Mouy t'ngai) (១ ថ្ងៃ)";
TextView text_view1 = null;
text_view1 = (TextView) findViewById(R.id.textView2);
Typeface font= Typeface.createFromAsset(getAssets(), "khmerOS.ttf");
text_view1.setTypeface(font);
text_view1.setText(s);

// you can use different type of .ttf like
TAU_BHON.TTF
molten.ttf
arialuni.ttf

第二个选项的示例:

tv.setText(Html.fromHtml("\u27A1"); 

Source.

P.S。如果我遗漏了什么,请随时补充。

我的文件 build.gradle 有这一行:

compileOptions.encoding = 'ISO-8859-1'

因此我无法更改任何内容。现在修好了。 :)