Java文字字符串:运行时错误的字符集

时间:2012-10-15 23:07:02

标签: java string character-encoding

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

正如您在下面的图片中看到的,我有一个名为TITULO的静态对象,带有文字字符串常量参数“Título”。当我运行程序时,此String被称为“TÃ-tulo”。我不知道为什么。

Eclipse Debug View

我在Eclipse Project Properties窗口和Tomcat设置中探索了charset设置,但它们都是UTF-8选项。

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

任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

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

<Connector port="8090" URIEncoding="UTF-8"/>

答案 1 :(得分:1)

eclipse编辑器中的代码与tomcat执行的代码不同。

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

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

感谢所有帮助,我找到了这个解决方案。

答案 2 :(得分:0)

我相信你正在寻找的字符串(this.id)at实际上并不是静态常量字符串Titulo。

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