关于国际化:Android 应用显示不正确的西班牙口音字符 | 珊瑚贝

Android app showing incorrect Spanish accent characters


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

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

enter

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

strings.xml

1
2
3
4
   <?xml version=”1.0″ encoding=”utf-8″?>
    <resources>
            <string name=”label_app_version”>Versi?3n</string>
    </resources>

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

  • 我还应该补充一点,我已经在几个不同的模拟器实例和真实设备上尝试过这个。我得到与上面的屏幕截图相同的结果(不是正确的重音)。
  • 如果你做了”clean” 然后”build” 以确保旧的资源文件被重新生成(可能在Eclipse 中的文件”refresh” 之后),那么我恐怕我没有想法。
  • 我确实做了干净的构建并确保它重新生成。接下来我将尝试一个单独的测试项目并使用 ant,然后从那里开始工作。不过感谢您的回复。


n


n

  • 我没有尝试使用相同字符串的其他项目,但我会制作一个测试项目并试一试。我确实尝试添加值-fr,没有区别。我还没有进行手动构建,但会暂时报告回来。我尝试了 u00f3n 甚至 amp-pound-oactute,它们都得到了相同的”短促”结果。我打算使用ant,接下来尝试一个单独的测试项目。不过,感谢您的回复,给了我一些尝试不同东西的想法。
  • 因此,我使用带有一个 Activity 的默认 Android 项目设置制作了一个测试项目。然后,我将 label_app_version 添加到已在默认 res/values 位置创建的 strings.xml 中,并使用 “Versiòn” 制作了 res/value-es/strings.xml,它在相同的模拟器实例和设备上运行良好我的应用程序不能使用相同的字符串。奇怪的。必须是项目中的某些内容,某些设置,某种资源编译方式。不我会继续追下去的。
  • 是的,我以前去过那里。我非常欢迎帮助您在一定程度上隔离问题。但是,老实说,当谈到 Eclipse 中的这一点时,我更喜欢创建一个新项目并复制所有内容,以免浪费时间(和头脑),但我承认它并不优雅……但它\\’一个分钟的解决方案。 :-) 不过,我认为这发生在我身上一两次。通常,我尽量不要过多地混淆编码(我在全局范围内设置 UTF-8/Unix 并继承所有内容)。我为这个问题加注了星标,因为我也对它的结果感兴趣。祝你好运!
  • 我还没有时间回到这个问题上,但基本上我不是 99% 确信它是一个项目设置或文件编码(即使我已经在 Eclipse 中手动设置它如上所述,并且除了 emacs [在 Ubuntu 和 OS X] 或 Eclipse 之外,我没有在任何其他编辑器中打开文件。当我回到这个问题时,我计划重新创建项目,然后复制文件,直到我可以重新创建问题。一个新项目工作正常,现有项目无法解析特殊字符,即使它具有相同的设置,UTF-8。
  • 关于 99% 的事情:不确定你是否考虑过,但我想你总是可以打开一个十六进制编辑器来真正确保它们是 UTF-8 源(检查字符代码)。我有根据的猜测是生产链中的某些工具导致了问题,而不是文件本身。我这么说是因为即使 Unicode 序列 (\\\\\\\ó) 不起作用(请参阅您的第 1 条评论),作为文件也是没有意义的。其实,我和你一样迷茫。
  • 您好,我遇到了这个问题:当我让 Eclispe 构建一个调试 apk 时,它很好,但是当我尝试使用 \\’ant debug\\’ 时


n


检查实际的 strings.xml 文件是如何存储的。

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

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

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

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

选择 UTF-8 选项。保存存档。干净的

  • 它位于”默认(由内容确定:UTF-8)”上,我将其更改为其他 UTF-8,如此处所述,我得到了同样奇怪的半圆形凸起(原始问题屏幕截图)。


来源:https://www.codenong.com/6300332/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?