0

问题

我在显示特殊字符时遇到问题。有人告诉我编码有错误。我在我拥有的测试设备上运行该应用程序,但我没有收到此错误。收到此错误的人正在同一设备型号上测试应用程序,但固件版本较新。

有人告诉我“字形是替换字符。你在某个地方搞砸了文件编码。一切都应该是 UTF-8 以保持理智。” 然而,它在我的设备上运行良好。

是否有针对此类问题的已知解决方案。谢谢!

编辑-下面是我在尝试复制中国工程师编写的代码时遇到的错误图像。以前从未像这样合作过我不确定这是否是一个常见问题,最终会反映在应用程序utf- 8 错误在此处输入图像描述

4

2 回答 2

1

好吧...为什么要在 .java 文件中定义字符串?它们最终需要存在strings.xml才能本地化,无论如何,这就是 Android 方式。

如果您查看文件的顶部,strings.xml您会看到这样的一行,

<?xml version="1.0" encoding="utf-8"?>

这告诉任何使用这个文件的字符被编码为 UTF-8(显然)。您将在 .java 文件中找不到这样的行。它将被编码为 eclipse 默认值,这取决于您的主机操作系统,并且几乎可以肯定不是 UTF-8。保存 .java 文件时,您的特殊字符会在编码过程中丢失。

于 2012-09-24T16:09:38.537 回答
0

简单的解决方案:始终使用strings.xml.

当您从 java 代码中加载一个字符串时,它可能会被破坏,这取决于 IDE(Eclipse?)认为您的 .java 文件的编码应该是什么以及 java 编译器的想法。

默认情况下,我的 Eclipse 工作区对 .java 文件使用 Windows 编码 (CP1252)。您可以在文件属性中看到编码。它为 strings.xml 文件正确显示 UTF-8。

于 2012-09-22T07:27:16.220 回答