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.

master-client テンプレートでキリル文字を使用しても問題ありません。また、クライアント テンプレートの h1-tag に英語が含まれている場合も機能します。どうすればこの問題と戦うことができますか?

4

1 に答える 1

2

これは、これらのファイルが UTF-8 として保存されていない場合に発生する可能性があります。答えは、ファイルの保存に使用されたエディターによって異なります。たとえば Eclipse の場合 (質問の履歴から、Eclipse を使用しているか、少なくとも使い慣れていることがわかります)、[ウィンドウ] > [設定] > [一般] > [ワークスペース] > [テキスト ファイルのエンコーディング]を UTF-8 に変更する必要があります。

ここに画像の説明を入力

この変更を行った後、ファイルを編集して再保存します。

以下も参照してください。

于 2013-01-31T17:54:13.927 に答える