質問

国際化に関していくつかの問題があります。

UTF-8 文字列フィールドがブラウザで ???? として表示されます。データベースから返された後。

Hibernate を使用してデータベースから取得した後、Eclipse デバッガーを使用した検査で String フィールドが正しく表示されます。

ただし、Struts2/Tiles はこれらの文字列を ???? としてレンダリングします。ブラウザに送信される HTML 内。

charset ディレクティブは HTML ヘッダーに存在します。

おそらく struts2 またはタイル構成に何かを追加する必要があるでしょうか?

役に立ちましたか?

解決

このようなことを試してみてはいかがでしょうか。

サンのページより抜粋 文字セットとエンコーディング。これは JSP の最初の行でなければならないと思います。

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

他のヒント

ああ、原因はまったくのひどいものだったことが判明しましたね?

すべてのタイル応答は、

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

ディレクティブ(そして他に何があるかは誰にもわかりません)。

TilesDispatchExtensionServlet :血まみれの建築宇宙飛行士よ、私はあなたたちに向かって拳を振ります。

<html/> 要素に lang 属性を設定してみてください。

HTML の例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja"> 

XHTML の例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> 

フィルターを使用する必要があります。見る:

http://wiki.apache.org/tomcat/Tomcat/UTF-8

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top