どこでも 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"
アプリケーションのすべてのフォームに追加する以外に、これに対する解決策はありますか?
ありがとう。