2

Web アプリケーションでフォームを送信すると、一部の文字 (fe ドイツ語のウムラウト) がコントローラーに入ると壊れます。文字列のようなüäö終わりのようなüäö。この問題を解決するにはどうすればよいですか?

私のセットアップは次のようになります。

  • 春のmvc 3.1.2
  • maven 3.0.4 または 2.2.1 (両方を試しました)
  • トムキャット 7.0.x
  • 日食 (sts 3.1.0)
  • ウィンドウズ8

スタックオーバーフローですでに見つけた回答に基づいて、次のことを試しました。

これらの行をjspに追加しました:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
...
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

pom.xml で指定されたエンコーディング:

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

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
<plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
<plugin>

Eclipse のエンコーディングを UTF-8 に変更します。

問題を調査しているときに、次の観察を行いました。

  • プロジェクト内のファイル (リソースと Java ファイル) を右クリックして、指定されたエンコーディングを確認すると、UTF-8 と表示されます。
  • これらの文字を jsps(fe <p>öäü</p>) で出力すると、ブラウザに正しく表示されます。
  • 問題は Windows と Linux にあります。

あなたの答えのために前もってthx。

更新

CharacterEncodingFilterを web.xml に追加して問題を解決しました

4

2 に答える 2

0

$TOMCAT_HOME/conf/server.xml ファイルを見て、エンコード設定を確認します。

<Connector port="8080" ... URIEncoding="UTF-8" />

GET フォーム送信 (おそらく POST も) のリクエスト パラメータなど、HTTP リクエスト値に対して UTF-8 が機能するには、Tomcat がこの設定を必要とするようです。

于 2012-11-17T09:15:57.940 に答える
0

文字エンコーディングに関する問題が発生するたびに、文字の UNICODE 表現を使用して修正しました。現在、韓国語とドイツ語のアルファベットのみを試しました。

于 2012-11-17T11:09:41.367 に答える