2

どこでも UTF-8 として機能するように構成された Grails アプリケーションがあります。デバッグ バージョンの実行中、ヘッダーは とContent-Type:text/html;charset=utf-8表示され、メタ タグは一致します。ブラウザーはページを UTF-8 として識別し、文字を正しく表示します。

フォームを投稿するとき、ブラウザーはそれを UTF-8 としてエンコードして正しく送信します。ただし、を介してデータを読み取るparams.paramnameと、データが文字化けして見えます。maçãになりmaçãます。

さらに調べてみると、フォームは UTF-8 データを送信しているように見えますが、Grails はそれを ISO-8859-1 であるかのように読み取ろうとしているようです。フォームに設定accept-charset="ISO-8859-1"すると、問題が修正されるため、この問題が確認されます。

applicationContext.xmlにもこれがあります:

<bean id="characterEncodingFilter" class="org.springframework.web.filter.CharacterEncodingFilter">
    <property name="encoding">
        <value>utf-8</value>
    </property>
    <property name="forceEncoding">
        <value>true</value>
    </property>
</bean>

accept-charset="ISO-8859-1"アプリケーションのすべてのフォームに追加する以外に、これに対する解決策はありますか?

ありがとう。

4

1 に答える 1

0

Tomcat の Grails リクエスト パラメータ エンコーディングの問題と同じ問題が発生すると思います。Burt の回答またはそれに対するコメントが役立つはずです。

于 2012-06-05T16:38:28.600 に答える