问题描述
||
我有一个当前的Android应用程序,它通过资源使用i18n。 res / values-es / strings.xml等。当我在将语言设置为Espanol的设备上对其进行测试时,它会从values-es文件中提取正确的资源,但是带重音符的字符很不合理。
例如,我想使用带有重音符号(ó)的小写o。我已经尝试过使用strings.xml文件中的实际字符(使用Ubuntu上的字符映射来创建字符串)以及该实体,无论哪种情况,它都像我不认识的其他字符集重音一样出现:
使用许多不同的文本编辑器时,同一字符在WITHIN strings.xml中看起来很完美。该文件为UTF-8(尝试使用Eclipse中的Android \“ wizard \”工具重新创建该文件)。
strings.xml
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<resources>
<string name=\"label_app_version\">Versión</string>
</resources>
现在,我以前在其他Android应用程序中使用过法语和德语,并带有各种重音符号,但是还没有看到这个问题,所以目前我很困惑。这次我在做什么错?
解决方法
我终于解决了这个问题。我使用的是字体,并在代码的前面调用了setTypeface。我使用的字体不得包含其他语言所需的特殊字符。在设置字体之前,我需要检查以确保我的用户使用的是我的字体支持的语言环境。
我应该已经意识到这一点,并且已经进行了检查。
因此,最重要的是,如果在不同语言环境中使用某些字符会得到奇怪的结果,请确保您使用的字体不支持这些字符。退回到不使用字体(不要调用setTypeface)并进行测试。
, 那个变音符号实际上被称为简短,在许多东欧语言中很常见。我曾经有过同样的问题。我什至在这里有一个问题。由于没有人能解决问题,因此值得一试...
我还不清楚:
它仅在此项目上发生吗?你有试过别人吗? (可能是项目错误)
尝试包含其他语言文件夹(例如,尝试values-fr)。你有同样的问题吗?
您是否尝试在Eclipse中构建应用程序?您是否尝试在命令行上手动构建?
然后,您可以尝试:
尝试使用
\\u00f3
,而不是\“ó\”(此处在PT中使用相同的名称)。像:Versi\\u00f3n
。您是否患有急性发炎的拉丁小便症?只是为了清除事物。
在命令行上手动使用ant
($ ant release
)构建应用。报告结果。
这可能有助于这里的人(比我更有经验的人)猜测问题出在哪里。
最好的祝福!
, 检查实际的strings.xml文件是如何存储的。
在Eclipse的文件树中,右键单击strings.xml文件,然后选择属性。
您将获得该文件的属性对话框。
如果尚未选择,请在左列中选择\“ Resource \”行。
检查底部的“文本文件编码”区域。
它可以选择为\“ default \”或选择的特定编码,例如\“ UTF-8 \”。
选择UTF-8选项。保存存档。清理并构建项目(以重新生成资源),然后查看是否有任何更改。
请参阅所附的屏幕截图。
苏尔特,安德鲁
, 这很奇怪,因为它不会引起问题。也许您应该尝试将字符串嵌入CDATA部分,如下所示:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<resources>
<string name=\"label_app_version\"><![CDATA[Versión]]></string>
</resources>