JSP でユーロ記号などの多くの通貨が正しく表示されないという問題があります。JDBC を使用して MySQL から情報を取得し、現在 tomcat v7.0.37 を使用しています。
最初はTomcatの問題である可能性があると思ったので、server.xmlとserver.xmlのさまざまな場所に「URIEncoding = "UTF-8"を追加しましたが、運がありませんでした。問題の可能性はありますか?
ありがとう。
JSP でユーロ記号などの多くの通貨が正しく表示されないという問題があります。JDBC を使用して MySQL から情報を取得し、現在 tomcat v7.0.37 を使用しています。
最初はTomcatの問題である可能性があると思ったので、server.xmlとserver.xmlのさまざまな場所に「URIEncoding = "UTF-8"を追加しましたが、運がありませんでした。問題の可能性はありますか?
ありがとう。
すべての文字を正常に印刷するには、MySQL、jsp ファイル、および結果の html のエンコーディングが同じであることを確認する必要があります。選択したエンコーディングが UTF-8 の場合、MySQL テーブルは UTF-8 である必要があり、jsp ファイルは UTF-8 で記述されている必要があり、ブラウザに送信される html には <meta http のようなタグが必要です。 -equiv="Content-Type" content="text/html; charset=UTF-8" />
問題が何であるかがわかりました。データベースから取得していたデータは clob データ型でした。clob を文字列に変換する方法が、以下のエンコードの問題を引き起こしていました。私のコードが最初でした。
Clob clob=resultSet.getClob(1);
Reader reader = clob.getCharacterStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
int c;
while ((c = reader.read()) != -1) {
out.write(c);
}
reader.close();
out.close();
return out.toString();
Clobで部分文字列を実行してClobを文字列に変換する方法を変更し、修正しました。
Clob clob=resultSet.getClob(1);
String outString= clob.getSubString(1l, (int)clob.length());
return outString;