【问题标题】:Android Studio messes up brazilian-portuguese charactersAndroid Studio 搞砸了巴西葡萄牙语字符
【发布时间】:2015-08-02 12:46:39
【问题描述】:

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

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

知道为什么吗?

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

  1. 文件 -> 设置 -> 编辑器 -> 文件编码,我已将所有内容更改为 UTF-8 等,重建/清理了项目,并且保持不变。

编辑:

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

有一张正在发生的事情的图片:

【问题讨论】:

    标签: android configuration idioms


    【解决方案1】:

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

    compileOptions.encoding = 'ISO-8859-1'
    

    因此,我无法更改任何内容。现在它已经修复了。 :)

    【讨论】:

      【解决方案2】:

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

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

      1) 为特定文本/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.

      附:如果我遗漏了什么,请随意填写。

      【讨论】:

      • 嗨!感谢您的建议,但这听起来对我来说太麻烦了。 :( 我想知道为什么 File Enconding -> UTF-8 不起作用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      相关资源
      最近更新 更多