0

アプリのウェブページでは、商標記号(TM)が疑問符として表示されています。ただし、登録商標(R)は機能します。JSP標準ライブラリのc:outタグを使用して値を表示しています。™を入れたら または™ これをテストするページに、想定どおりに表示されます。

<td><c:out value="${item.description}"/></td> <!-- does not work -->
<td>yada yada yada Spiros&trade; yada yada yada</td> <!-- works -->

これに加えて、YUIも使用しており、これらのページを表示する前に、クエリの結果としてYUIデータテーブルに表示されます(ユーザーが行をクリックして上記のページに移動します)。(TM)はそのテーブルに正しく表示されます。これは、データベースから値を適切にフェッチしていることと、YUIデータテーブルに送り返すXMLを生成するサーバーコードも機能していることを示しています。

では、シンボルをページにハードコーディングしない限り、同じ文字列がYUIデータテーブルに正しく表示されるのに、通常のJSPには表示されないのはなぜですか?

4

2 に答える 2

1

おそらくエンコーディングの問題があります。JSPに明示的なエンコーディングがない場合:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

次に、1つ追加します。UTF-8を試してみてください。それでもうまくいかない場合は、ISO-8859-1を試してください...または、正しいエンコーディングがわかっている場合は、それを使用してください。

于 2009-05-29T23:49:21.400 に答える
0

文字が?として表示される場合 ブラウザ(通常はFirefox)内では、ページエンコーディング(ブラウザによって検出されたため、文字が認識されない)を意味します。Firefoxで[表示]->[文字エンコード]->[UTF-8]をテストすることをお勧めします。文字が正しく表示される場合は、これは、(tm)文字がUTF-8標準を使用してエンコードされていることを意味します。応答エンコードヘッダーをUTF-8に設定するようにページに指示する必要があります。これは、今すぐ機能するはずです。

それがうまくいかない場合は、最初に文字がどのようにエンコードされているかを調べ(たとえば、データベースから読み取られるエンコードを確認して)、ページエンコードヘッダーをそのエンコードに設定してみてください。

2番目の形式は、(TM)charが既知のhtmlエンティティとしてエンコードされており、ページのエンコードに関係なくブラウザが解釈するために機能します。

于 2009-05-29T23:46:09.300 に答える