Android应用显示不正确的西班牙语重音字符

时间:2011-06-09 23:10:08

标签: android internationalization

我有一个当前的Android应用程序,通过资源使用i18n。 res / values-es / strings.xml等。当我在语言设置为Espanol的设备上进行测试时,它会从values-es文件中提取正确的资源,但是重音字符是不合适的。

例如,我想使用带有重音(ó)的小写字母o。我已尝试使用strings.xml文件中的实际字符(使用Ubuntu上的字符映射创建字符串)和实体,在任何一种情况下,它都会像我不认识的其他字符集重音一样:

enter image description here

使用许多不同的文本编辑器时,相同的字符在strings.xml中看起来很完美。该文件是UTF-8(尝试使用Eclipse中的Android“向导”工具重新创建它以确保)。

的strings.xml

   <?xml version="1.0" encoding="utf-8"?>
    <resources>
            <string name="label_app_version">Versión</string>
    </resources>

现在我在其他Android应用程序中使用过法语和德语,各种各样的口音,并没有看到这个问题,所以我现在完全感到困惑。这次我做错了什么?

4 个答案:

答案 0 :(得分:3)

这种变音实际上被称为短语,在许多东欧语言中很常见。我曾经遇到过同样的问题。我甚至在这里有一个问题。由于没有人解决问题,所以值得一试......

我还不清楚:

  1. 这只是在这个项目上发生的吗?你试过别人吗? (也许是项目错误)
  2. 尝试包含其他语言文件夹(例如,尝试使用values-fr)。你有同样的问题吗?
  3. 您是否尝试在Eclipse中构建应用程序?您是否尝试在命令行上手动构建?
  4. 然后,您可以尝试:

    1. 尝试\u00f3而不是“ó”(这里我们使用相同的PT)。喜欢:Versi\u00f3n。你是否得到适当的拉丁小o?只是为了清除事情。
    2. 在命令行上使用ant$ ant release)手动构建应用。报告结果。
    3. 这个可以帮助这里的人(他们比我更有经验)猜测问题出在哪里。

      祝你好运!

答案 1 :(得分:3)

我终于解决了这个问题。我在代码中使用了一个字体并调用了setTypeface。我使用的字体不得包含其他语言所需的特殊字符。在设置字体之前,我需要检查以确保我的用户正在使用我的字体支持的区域设置。

我应该意识到这一点并提前检查过。

所以最重要的是,如果你在不同的语言环境中使用某些字符会得到奇怪的结果,请确保你没有使用不支持这些字符的字体。回退到不使用字体(不要调用setTypeface)并测试那种方式。

答案 2 :(得分:1)

检查实际strings.xml文件的存储方式。

在Eclipse的文件树中,右键单击strings.xml文件并选择属性。

您将获得该文件的属性对话框。

如果尚未选择,请选择左栏中的“资源”行。

检查底部的“文本文件编码”区域。 它可以选择为“默认”或特定编码,例如选择“UTF-8”。

选择UTF-8选项。保存存档。清洁&amp;构建项目(重新生成资源),然后查看是否有任何更改enter image description here

参见附页截图。

Suerte,Andrew

答案 3 :(得分:1)

这很奇怪,因为它不应该导致问题。也许你应该尝试将字符串嵌入CDATA部分,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="label_app_version"><![CDATA[Versión]]></string>
</resources>