2

私はいくつかの JSP ページを UTF-8 で適切にエンコードし、Hex Editor、Eclipse、および TextPad を使用して検証し、適切な pageEncoding および contentType 属性でそれぞれ UTF-8 を指定しています。ブラウザでもすべて問題なく表示されました。ここで、コンテンツの一部を JSP タグ ファイルに抽出する必要がありましたが、タグ ファイル自体は再び UTF-8 として適切にエンコードされ、それぞれの pageEncoding が UTF-8 になっています。Oracleのドキュメントに従いました:

http://docs.oracle.com/javaee/5/tutorial/doc/bnama.html#bname

現在の問題は、たとえば、ドイツ語のウムラウトがブラウザで二重エンコードされた UTF-8 として表示されることです。「ö」ではなく、「ö」と表示されます。Eclipse で pageEncoding を windows-1252 に変更すると、それ自体がファイルを適切に再エンコードしているように見え、TextPad と Hex Editor を使用して再度確認すると、ブラウザーですべてが正常に表示されます。

タグ ファイルは TagHandlers の Java ソース コードを自動的に作成するために使用されるため、生成されたソース コード ファイルを調べたところ、pageEncoding UTF-8 で、ソース ファイル自体にドイツ語のウムラウト用に二重エンコードされた UTF-8 が既に含まれていることがわかりました。ソース ファイル自体は UTF-8 でエンコードされており、テキストパッドでソース ファイルを表示すると、ドイツ語のウムラウトの out.write-statements に "ö" が含まれており、UTF-8 についても説明されています。ソース ファイルを 16 進エディタで開くと、ダブル エンコードされた UTF-8 で予想されるように、"ã¶" 文字がより多くのバイト数で表示されます。

以下は、生成されたソース コード ファイルの行の例です。

out.write("\t\t\t\t\ttitle=\"Verzeichnis löschen\">\r\n");

Eclipse ワークスペースのデフォルトのエンコード オプションをいくつか変更しましたが、何の効果もありません。JSP ファイルのソース コードが生成される方法とは対照的に、タグ ファイルのソース コード生成中に、タグ ファイル自体の UTF-8 文字が保持されるように思えます。ドイツ語のウムラウトを含む JSP ファイルの生成されたソース コードを表示すると、UTF-8 としてエンコードされたファイルを認識する TextPad では "ö" として適切に表示され、16 進エディタでファイルを開くと "ö" として適切に表示されます。

私はここで少し迷っています.UTF-8でエンコードされたタグファイルがこのように処理され、JSPファイルとは異なる理由を知っている人はいますか? 私は何を間違っていますか?

ヒントをありがとう!

さらに言及することを考える人もいます:

タグ ファイルは、UTF-8 などでエンコードされた JSP ファイルで引き続き使用されるため、タグ ファイルによって生成されるコンテンツ/エンコード/コンテンツの「周辺」は、適切にエンコードされた UTF-8 のままです。前に述べたように、タグ ファイルの内容は、以前は JSP ファイルで完全に機能していたいくつかのステートメントにすぎません。

以下は、タグファイルを使用するステートメントです。

<%@ taglib  tagdir="/WEB-INF/tags/dirListing"
        prefix="dirListing"
%>
[...]
<dirListing:tree dir="${requestScope.dir}" />
4

1 に答える 1