Spring MVCアプリを開発していますが、エンコードに問題があります。
問題は次のとおりです。ブラウザで「João」と入力し、フォームを送信した後、コントローラで「João」を取得します。私のFirefoxはUTF-8に設定されているので、Eclispeに設定されています。Firebugを使用して送信されたパラメーターを確認しても、値は正しいままです。
これが私のエンコーディング設定です:
web.xmlで、私が最初に持っているもの:
<filter>
<filter-name>encoding-filter</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>
</filter>
<locale-encoding-mapping-list>
<locale-encoding-mapping>
<locale>pt-BR</locale>
<encoding>UTF-8</encoding>
</locale-encoding-mapping>
<locale-encoding-mapping>
<locale>pt</locale>
<encoding>UTF-8</encoding>
</locale-encoding-mapping>
<locale-encoding-mapping>
<locale>en</locale>
<encoding>UTF-8</encoding>
</locale-encoding-mapping>
</locale-encoding-mapping-list>
<filter-mapping>
<filter-name>encoding-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
JSPの場合:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
フォーム上:
<form:form method="post" ... acceptCharset="UTF-8">
servelt-context.xml:
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
<beans:property name="contentType" value="text/html;charset=UTF-8" />
</beans:bean>
私のpom.xml(Maven)の内部:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java-version>1.6</java-version>
<org.springframework-version>3.1.0.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.1</org.slf4j-version>
</properties>
サーバーを呼び出すために、次のようなJQuery load()関数を使用しています。
var params = form.serialize();
$.ajaxSetup({
contentType: 'text/html; charset=UTF-8'
});
$("#content").load(url, params);
必死に試みたので、この$ .ajaxSetupを含めましたが、効果はありません。
パラメータで、この「João」が「Jo%C3%83%C2%A3o 」であることに気付きました。Firebugを使用して「João」に戻しましたが、それでも同じ問題が発生します。
編集:私のapache-tomcat-7.0.27 \ conf \server.xmlにもURIEncoding="UTF-8"が含まれています:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
魔法のアイデアはありますか?
前もって感謝します。