実際にFacelets(デフォルトでUTF-8を使用)を使用していて、PrimeFaces ajax(リクエスト本文のエンコーディングをmessupすることが知られています )、問題には2つの原因があります:
-
MySQLJDBCドライバーの文字エンコードがUTF-8に設定されていません。これにより、DB内の文字が文字化けしました。
-
Eclipseコンソールの文字エンコードがUTF-8に設定されていません。これにより、
System.out
の文字が文字化けしました 。
解決策は次のとおりです。
-
useUnicode=yes
を追加します およびcharacterEncoding=UTF-8
JDBC接続へのパラメータ。 JDBCURLのクエリ文字列として指定できますjdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
または、JDBCデータソースの接続プロパティとして、ユーザー名、パスワードなどを指定したのとまったく同じ方法で。
-
ウィンドウ>設定>一般>ワークスペース>テキストファイルエンコーディングにより、コンソールエンコーディングとしてUTF-8を使用するようにEclipseに指示します。 :