Android Studio 弄乱了巴西-葡萄牙语字符
Android Studio messes up brazilian-portuguese characters
我的项目没有显示任何葡萄牙语字符。当我尝试输入像 "Não" 这样的词时,它 returns Não"。
有趣的是,当我从 res/string.xml 获取字符串时,它正确显示了单词。
知道为什么吗?
到目前为止我已经尝试过但没有成功的事情:
- 文件 -> 设置 -> 编辑器 -> 文件环境,我已将所有内容更改为 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");
P.S。如果我遗漏了什么,请随时补充。
我的文件 build.gradle 有这一行:
compileOptions.encoding = 'ISO-8859-1'
因此我无法更改任何内容。现在修好了。 :)
我的项目没有显示任何葡萄牙语字符。当我尝试输入像 "Não" 这样的词时,它 returns Não"。
有趣的是,当我从 res/string.xml 获取字符串时,它正确显示了单词。
知道为什么吗?
到目前为止我已经尝试过但没有成功的事情:
- 文件 -> 设置 -> 编辑器 -> 文件环境,我已将所有内容更改为 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");
P.S。如果我遗漏了什么,请随时补充。
我的文件 build.gradle 有这一行:
compileOptions.encoding = 'ISO-8859-1'
因此我无法更改任何内容。现在修好了。 :)