2016-10-07 4 views
1

私はSpring FrameworkでWildfly 10アプリケーションサーバーの下でWebアプリケーションを開発しています。私はEclipse IDEを使用します。なぜ私のプロジェクトでUTF8文字エンコーディングが正しく機能しないのですか?

解決できなかった文字エンコーディングで問題が発生しました。サーバー側からクライアント側に送信すると文字の一部が正しく表示されません。私は、データベースから値を読み込み、クライアント側に送信すると、私が使用し

私のテストStringオブジェクトは「árvíztűrő tükörfúrógép

  1. で、すべてが正常に表示されます。
  2. ControllerでModelAndViewオブジェクトとしてString値を設定すると、 '?? rv?zt?±r ??クライアント側からの値をPOST変数としてajaxで送信し、それをクライアント側に送り返すと、「árvízt?r?」と表示されます。 tükörfúrógép '。

私はUTF8エンコードするすべての.jspファイルを設定します。私はUTF8にすべてのMavenのモジュールのテキストファイルのエンコーディングを設定するEclipseでは<%@page contentType="text/html" pageEncoding="UTF-8"%>

。すべてのファイルはUTF8になっています。

私は何を欠席しましたか?クライアント側でString値を取得するために他に何を設定する必要がありますか? Wildfly 10で文字エンコードを何とか設定する必要がありますか?

誰かが私を助けることができますか?さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。ありがとうございました。

EDIT:文字エンコーディングをMavenプロパティとして設定すると、2番目のケースが解決されます。今私は3番目のケースで問題があります:

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 
+1

デバッガでコードをステップ実行して、文字列が破損し始める場所を確認しましたか? – Thomas

+0

トーマス:はい。サーバー側では、値がクライアント側から来たものであろうと、データベースから来たものであろうと、問題はありません。クライアント側では、私はポストにあるものを見ることができます。 – Igorovics

+0

ボーナス情報:JSONObjectに値を書き込むときに、アクセント記号付きの文字は、サーバー側でもすでに見栄えが悪いように見えます。 – Igorovics

答えて

2

私は私の問題の解決策を見つけることができました。私が送信されたときにも <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

:私はソースの文字エンコードを設定しなければならなかった私のMavenプロジェクトのWebモジュールで

:サーバーと春を設定するには、また、私は2つのより多くのものを追加する必要がJSONObjectをクライアント側に設定するには、文字エンコーディングを設定する必要がありました。 @RequestMapping(value = "/historyContent.do", produces = { "application/json; charset=UTF-8" })

最後に私が望むものを見ることができます。

関連する問題