0

我正在使用 JSF 2 和 Tomcat 6 开发 Web 应用程序。我遇到以下异常:com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 3-byte UTF-8 sequence当我尝试加载有问题的页面时。我在显示文本中强调了西班牙字符,我发现它们导致了异常。例如,<p>ñ</p>导致错误,但<p>n</p>工作正常。请注意,此示例文本是硬编码的并包含在<ui:define>标签中。

我还会注意到在客户端 .xhtml 文件(有问题的页面)中使用了一个模板。模板文件有<?xml version="1.0" encoding="UTF-8"?>声明。关于可能是什么问题的任何建议?我搜索了互联网和 SO,有很多关于这个特定异常的问题,但大多数不涉及 JSF,而是涉及影响可能是问题原因的其他细节。感谢您的建议。

4

1 回答 1

3

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

于 2013-04-23T15:28:29.023 回答