Xml JSF 2异常:com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:3字节UTF-8序列的无效字节2

Xml JSF 2异常:com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:3字节UTF-8序列的无效字节2,xml,jsf-2,character-encoding,Xml,Jsf 2,Character Encoding,我正在使用JSF2和Tomcat6开发一个web应用程序。我遇到以下异常:com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:3字节UTF-8序列的无效字节2当我尝试加载相关页面时。我在显示文本中添加了重音西班牙语字符,我发现它们导致了异常。例如,ñ会导致错误,但n工作正常。请注意,此示例文本是硬编码的,并包装在标记中 我还将注意到,client.xhtml文件(讨论中的页面)中使用了一个模板。模板文

我正在使用JSF2和Tomcat6开发一个web应用程序。我遇到以下异常:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:3字节UTF-8序列的无效字节2
当我尝试加载相关页面时。我在显示文本中添加了重音西班牙语字符,我发现它们导致了异常。例如,
ñ

会导致错误,但
n

工作正常。请注意,此示例文本是硬编码的,并包装在
标记中


我还将注意到,client.xhtml文件(讨论中的页面)中使用了一个模板。模板文件具有
声明。对可能出现的问题有什么建议吗?我在互联网上搜索过,有很多关于这个特定异常的问题,但是大多数问题都不涉及JSF,而是涉及到影响问题原因的其他细节。感谢您的建议。

经过进一步的调查(尝试和错误),我通过更改Eclipse中的设置使其正常工作。我在问题中没有提到我在使用Eclipse,我想是因为我对这个问题一无所知……事后诸葛亮。无论如何,我是这样做的,使我的页面显示带有西班牙语重音字符的文本:在Eclipse中,在
首选项/General/Workspace
下,有一个“文本文件编码”选项设置为默认值“Cp1252”。我把它改成使用UTF-8,它成功了。我还更改了一个“编码”设置,在以下每个选项下使用UTF-8:
首选项/Web/CSS文件
首选项/Web/HTML文件
,以及
首选项/XML/XML文件
。在最终找到“常规/工作区”设置之前,我已经更改了这些设置(没有成功显示重音字符),因此我不确定它们是否有影响。

经过进一步的调查(尝试和错误),我通过在Eclipse中更改设置使其正常工作。我在问题中没有提到我在使用Eclipse,我想是因为我对这个问题一无所知……事后诸葛亮。无论如何,我是这样做的,使我的页面显示带有西班牙语重音字符的文本:在Eclipse中,在
首选项/General/Workspace
下,有一个“文本文件编码”选项设置为默认值“Cp1252”。我把它改成使用UTF-8,它成功了。我还更改了一个“编码”设置,在以下每个选项下使用UTF-8:
首选项/Web/CSS文件
首选项/Web/HTML文件
,以及
首选项/XML/XML文件
。在最终找到“常规/工作区”设置之前,我已更改了这些设置(未成功显示重音字符),因此我不确定它们是否有影响。

能否将编码从“UTF-8”更改为“ISO-8859-1”?很抱歉延迟…我尝试了“ISO-8859-1”,但得到了相同的错误。还有其他建议吗?您不可能在尝试ISO-8859-1时出现相同的错误。因为错误是关于UTF-8的。是的,我做了,它给了我一个提到UTF-8的例外。另外,当我检查源代码时,无论我在模板中使用哪种编码,HTML头都显示charset=ISO-8859-1,它与我最初在问题中提到的略有不同:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:4字节UTF-8序列中的无效字节2。
你看,它说的是“4字节中的2个”,而不是“3字节中的2个”。然而,我不确定这告诉了我什么…从最初的错误到现在,我把文本减少到只有一个字符。也许我会使用完全相同的文本重新比较异常。你能将编码从“UTF-8”更改为“ISO-8859-1”吗?很抱歉延迟…我尝试了“ISO-8859-1”,但得到了相同的错误。还有其他建议吗?您不可能在尝试ISO-8859-1时出现相同的错误。因为错误是关于UTF-8的。是的,我做了,它给了我一个提到UTF-8的例外。另外,当我检查源代码时,无论我在模板中使用哪种编码,HTML头都显示charset=ISO-8859-1,它与我最初在问题中提到的略有不同:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:4字节UTF-8序列中的无效字节2。
你看,它说的是“4字节中的2个”,而不是“3字节中的2个”。然而,我不确定这告诉了我什么…从最初的错误到现在,我把文本减少到只有一个字符。也许我会使用完全相同的文本重新比较异常。