私はこのような定義された文字セットと.jspという意見のカップルを持っている:そこ要素でSpring MVCの疑問符は、私のSpring MVCのプロジェクトで
<%@ page language="java" contentType="text/html; charset=windows-1250"
pageEncoding="windows-1250" session="true" %>
<meta charset="windows-1250">
私は実現とデバッグのためにtomcat 8でEclipseを使用しています。私はいくつかのポーランドの手紙を渡すと
System.out.println("Default Charset=" + Charset.defaultCharset());
System.out.println("file.encoding=" + System.getProperty("file.encoding"));
System.out.println("Default Charset=" + Charset.defaultCharset());
System.out.println("Default Charset in Use=" + getDefaultCharSet());
:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>WINDOWS-1250</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
は私のコントローラクラスでは(適切なRequestMapperに)私はいくつかの文字セットを印刷しています:web.xmlに私はこのような定義されたエンコーディングフィルタを持っています.jspビュー(passedby ModelAtribute)。たとえば、コントローラのabcdeęść(結果としてデータベース内)に印刷された値はです。abcde ???。上記のSystem.out.printlnsの出力は次のとおりです。
Default Charset=windows-1250
file.encoding=windows-1250
Default Charset=windows-1250
Default Charset in Use=Cp1250
これらのポーランド語の文字に問題はありますか?私はすべてのエンコードを変更した場合
:をabcdeÄÅÄ
EDIT:UTF-8定義
Default Charset=UTF-8
file.encoding=UTF-8
Default Charset=UTF-8
Default Charset in Use=UTF8
ストリングabcdeąśćは次のように印刷されると
編集 同じ出力UTF-8の問題は同じです。しかし、私は気づく: 私は最初にISO-8859-1からテキストをデコードして、UTF-8のプリントにそれをエンコードした値を保存する場合は、OKです:
私はそれらを持っているすべての.jspファイルでbyte ptext[] = email.getBytes(Charset.forName("ISO-8859-1"));
String value = new String(ptext, Charset.forName("UTF-8"));
System.out.println("Value email: " + value);
UTF-8文字セットを含む行、ファイルはUTF-8、Javaクラスのいずれかでエンコードされ、何らかの形で.jsp形式の値はISO-8859-1になります。そんなことがあるものか ?
「iso-8859-1」または「UTF8」を試しましたか? –
UTF-8の問題はほぼ同じです。私は上の質問のいくつかの詳細を追加しました。 – clsbartek