1

現在、いくつかの RSS フィードを WebLogic Application Server にデプロイしようとしています。フィードのビューは、以下のような .jspx ファイルです。

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" 
    xmlns:georss="http://www.georss.org/georss"
    xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    xmlns:util="http://example.com/util">
    <jsp:directive.page pageEncoding="utf-8" contentType="application/xhtml+xml" /> 

    <jsp:useBean id="now" class="java.util.Date" scope="page" />

    [...]

    <c:forEach var="category" items="${categories}">
    <entry>
        <title>${util:htmlEscape(category.label)}</title>
        <id>${category.id}</id>
        <c:if test="${empty parentId}">
        <link href="${util:htmlEscape(fullRequest)}?parentId=${category.id}" />
        </c:if>
        <summary>${util:htmlEscape(category.localizedLabel)}</summary> 
    </entry>
    </c:forEach>
</feed>

問題は、私のローカル開発サーバー (Apache Tomcat 6.0) ではすべて正常にレンダリングされるのに、WebLogic サーバーではすべての UTF-8 文字が壊れてしまうことです。

Firefox では、 のようなものが表示され<summary>Formaci�n</summary>ます。奇妙な文字のバイト シーケンスはef bf bd、私が実施しているテストで受け取るはずのすべての UTF-8 文字 (á、ó、í) について取得しているようです。firebug で content-type と encoding を確認しましたが、問題ないようです ( Content-Type: application/xhtml+xml; charset=UTF-8)。

Chrome では、奇妙な文字が最初に出現した時点でコンテンツが切り詰められ、次のエラー メッセージが表示されますThis page contains the following errors: error on line 1 at column 523: Encoding error

何が起こっているのかわかりませんが、ローカルの Tomcat ではすべて問題ないことを考えると、Web サーバーが実行していることに関連していると思います。どんなアイデアでも大歓迎です。

ありがとう、
アレックス

4

2 に答える 2

2

この問題は、jspxディレクティブの属性の順序と、属性に文字セットを含めていなかったという事実に起因していましたcontentType

切り替え後:

<jsp:directive.page pageEncoding="utf-8" contentType="application/xhtml+xml" />

に:

<jsp:directive.page contentType="application/xhtml+xml; charset=UTF-8" 
     pageEncoding="UTF-8" />

キャラクターは元気に出てきました。私はもう少しいじくり回しました、そして、不思議なことに、これを見つけました:

<jsp:directive.page pageEncoding="UTF-8"
      contentType="application/xhtml+xml; charset=UTF-8" />

動作しません。理由はよくわかりませんが、WebLogicのバグだと思います。私がデプロイしたバージョンは10.0でした。

于 2010-07-28T10:02:44.067 に答える
1
于 2010-07-23T15:08:07.750 に答える