フォームの中にUTF8文字を含むフォームを送信しようとしています。 フォームは次のようになります。フォームポストとスプリングコントローラを使用したUTF-8エンコーディング
<form id="workflowPersistForm" accept-charset="UTF-8" method="post" action="/workflow-next">>
<input id="stateGlobal" type="hidden" value=" お問い合わせ" name="state">
</form>
私のサーバーは、ベースの春です。私のweb.xmlがすでにエンコーディングフィルターを持っています
<filter>
<filter-name>EncodingFilter</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>
問題はUTF-8文字がどこかで台無しになっているということです。私はコントローラーの始まりにちょうどブレークポイントを置き、キャラクターはそのポイント自体で台無しになる。また、コントローラ内でUTF8文字を生成すると、ブラウザで正しくレンダリングされます。フォームのポストでは、コントローラーは文字を正しく受信しません。
私は間違っていると思いますか?
編集:新しいページでは、データが乱されていないが、その2重にエンコードされているように見えます。 なぜそれが二重コード化されているのか理解できません。
編集2:投稿の代わりにフォームを変更すると、すべてが完全に機能します。私はポストが壊れているのか分かりません。
多くのリンクされた問題が、実際の問題はweb.xmlのフィルタの順序にありました –