2011-08-28 6 views
2

かなり基本的な質問です。私は自分自身を理解していないことを夢見ています。スウェーデン文字はGoogle App Engineで間違ってコード化されています

Google App EngineでホストされているSpring WebアプリケーションでHTMLフォームに投稿された文字列を正しいエンコーディングで処理するにはどうすればよいですか?

前提条件:私は、私は、次のエンコーディングを試してみましたページがあります。

メタHTTP-当量= "Content-Typeの" コンテンツ= "text/htmlのを;のcharset = ISO-8859-1"

メタHTTP-当量= "Content-Typeの" コンテンツ= "text/htmlの;のcharset = UTF-8" 誰かが例えばスウェーデンの文字をページのフォームをポスト

は、私は私のサーブレットでquestionmarksを取得し、その後AAOポストされた文字列(デプロイされたサーバー上の永続化された文字列)を見ると、 (スウェーデン語の手紙の後の文字も文字列で削除されているので、何らかの形でエスケープされたシーケンスと思われます)。

ページのエンコーディングを変更するか、または何らかの方法でGAEサーブレットのエンコーディングを変更する必要がありますか?

+0

のためにUTF-8を使用しています、あなたはところで@ResponseBody使用していますか? –

+0

いいえ、私が正しく覚えていれば、そのアプリケーションはSpring MVCを使用していませんでした。 –

答えて

1

私は軍のエンコーディングがUTF-8であることをことを、サーブレットフィルタを使用しています:

<filter> 
    <filter-name>Set Character Encoding</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>forceEncoding</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>Set Character Encoding</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

私はそれが必要であることはよく分からない、それは私のGAEプロジェクトのためのテンプレート(および他のSpring-からだけです私はこのフィルタなしで試してみませんでした。しかしそれで、うまくいきます。エンコーディングの問題はまったくありません。

そして確かに、私はいつもスペイン語ñと同じページ

+0

あなたのフィルターは、UTF-8を使用しているだけで固定されています。どうもありがとう! –

+0

私はこれについてのblogpostも書きました。http://macgyverdev.blogspot.com/2011/09/how-to-get-character-encoding-correct.html –