9

我在 Java 中遇到文字字符串的字符集问题。

如下图所示,我有一个名为 TITULO 的静态对象,带有文字字符串常量参数“Título”。当我运行程序时,这个字符串被读作“TÃ-tulo”。我不知道为什么。

Eclipse 调试视图

我在 Eclipse 项目属性窗口和 Tomcat 设置中探索了字符集设置,但它们都使用 UTF-8 作为选项。

我正在运行 Tomcat 7、Eclipse Helios 和 Windows SO。

谁能帮我解决这个问题?

4

3 回答 3

1

您可以尝试在 server.xml 中将 Tomcat URIEncoding 设置为 UTF-8

<Connector port="8090" URIEncoding="UTF-8"/>
于 2012-10-16T00:04:40.903 回答
1

Eclipse 编辑器中的代码与 tomcat 正在执行的代码不同。

我在 /target 文件夹中找到了一个 .war 文件。我删除了这个战争文件并且有效!tomcat 正在运行这个旧战争文件中的类。

我最近将这个正在运行的 Eclipse 项目转换为一个 Maven 项目。我可能在创建这个war文件的这个过程中执行了'mvn package'。

感谢大家帮助我找到了这个解决方案。

于 2012-10-16T01:07:25.287 回答
0

我相信您正在查看的字符串 (this.id) 实际上不是静态常量字符串 Titulo。

在代码中的某处,您正在读取正确的 unicode String Titulo,将其转换为字节数组,然后将其转换回 String 并将其传递给 Style 的构造函数。字符串在转换过程中被损坏。除非您显示调用 Style 的构造函数的代码的堆栈跟踪,否则不能多说。

于 2012-10-15T23:41:05.953 回答