1

我有以下模板:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>
        <ui:insert name="title" />
    </title>
</h:head>
<h:body>
    <div id="header">Some header</div>
    <div id="content">
        <ui:insert name="content" />
    </div>
    <div id="footer">Some Footer</div>
</h:body>
</html>

和以下客户端模板:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    template="templates/template.xhtml">
    <ui:define name="title">
        English Online
    </ui:define>
    <ui:define name="content">
        <h1>Кириллический шрифт</h1>
    </ui:define>
</ui:composition>

现在的问题是:

当我使用“h1”标签中的西里尔字体从复合材料中调用主模板时,浏览器会给出:

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence.

即使我在主客户端模板中使用西里尔字体也可以。当客户端模板 h1-tag 包含英文时,它也可以工作。我该如何解决这个问题?

4

1 回答 1

2

如果这些文件未保存为 UTF-8,则可能会发生这种情况。答案取决于用于保存文件的编辑器。如果它是例如 Eclipse(您的问题历史提示您正在使用它或至少熟悉它),那么您需要将Window > Preferences > General > Workspace > Text file encoding更改为 UTF-8。

在此处输入图像描述

进行此更改后,编辑并重新保存文件。

也可以看看:

于 2013-01-31T17:54:13.927 回答