適切な状況 - > JSPからアクションに渡すときの文字化けのコード状況、ここでGBKを例として取っています
1.変換エンコード用のフィルターを作成します
ファイルの例:src.util.setcharacterencodingfilter.java
コードコピーは次のとおりです。
パッケージutil;
java.io.ioexceptionをインポートします。
javax.servlet.filterをインポートします。
javax.servlet.filterchainをインポートします。
javax.servlet.filterconfigをインポートします。
javax.servlet.servletexceptionをインポートします。
javax.servlet.servletrequestをインポートします。
javax.servlet.servletResponseをインポートします。
javax.servlet.unavailableExceptionをインポートします。
/**
*解析に使用される文字エンコードを設定するフィルターの例
*着信リクエスト
*/
Public Class SetCharacterEncodingFilterはフィルターを実装しています{
/**
*このフィルターを使用してください。
*/
public void Destroy(){
}
/**
*使用するキャラクターエンコードを選択して設定します(指定した場合)
*このリクエストのリクエストパラメーターを解釈します。
*/
public void dofilter(servletRequestリクエスト、サーブレスポンス応答、
filterchainチェーン)IoException、servletexception {
request.setcharacterencoding( "gbk");
//コントロールを次のフィルターに渡します
Chain.dofilter(リクエスト、応答);
}
public void init(filterconfig filterconfig)はservletexceptionをスローします{
}
}
2。struts 'filterdispatcherマッピングの前にweb.xmlを変更し、2つのフィルターを追加します
コードコピーは次のとおりです。
<?xmlバージョン= "1.0" encoding = "utf-8"?>
<web-appバージョン= "2.5"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance"
xsi:schemalocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">
<リスナー>
<リスナークラス> org.springframework.web.context.contextloaderlistener </ristener-class>
</リスナー>
<filter>
<filter-name>セット文字エンコード</filter-name>
<filter-class> util.setcharacterencodingfilter </filter-class>
</filter>
<フィルターマッピング>
<filter-name>セット文字エンコード</filter-name>
<url-pattern>/*</url-pattern>
</フィルターマッピング>
<filter>
<filter-name> struts-cleanup </filter-name>
<filter-class> org.apache.struts2.dispatcher.actioncontextcleanup </filter-class>
</filter>
<フィルターマッピング>
<filter-name> struts-cleanup </filter-name>
<url-pattern>/*</url-pattern>
</フィルターマッピング>
<filter>
<filter-name> struts2 </filter-name>
<filter-class> org.apache.struts2.dispatcher.filterdispatcher </filter-class>
</filter>
<フィルターマッピング>
<filter-name> struts2 </filter-name>
<url-pattern>/*</url-pattern>
</フィルターマッピング>
</web-app>
3。JSPヘッダーにはあります
<%@ページ言語= "java" pageencoding = "gbk"%>
4. struts.xmlのデフォルトのエンコード設定を変更します
コードコピーは次のとおりです。
<Struts>
<constant name = "struts.i18n.encoding" value = "gbk"> </constant>
...
...
...
</struts>
基本的に、これはほとんどの着信キャラクターの問題を解決することができます
PS:MySQLなどのデータベースが文字化された文字を抽出した場合、データベース内の文字がGBKであることを確認し、接続文字列が文字エンコードを指定します。
<プロパティ名= "url" value = "jdbc:mysql:// localhost/database?useunicode = true&charaterencoding = gbk"> </property>