jspはMySQLの中国語のデータの文字化けしの問題を読みます

3525 ワード

jspはMySQLの中国語データの文字化けし問題を読み取る文章分類:Webフロントエンドはweb開発中の中国語問題を解決する.この时间はよくある人がweb开発の中でどのように中国语はいつも闻きますか?番号.理由は簡単です.tomcatサーバを使用することが多いため、tomcatサーバのデフォルトコードはiso-8859-1(西欧文字)です.iso-8859-1(西欧文字)符号化が私たちによく見られるようになったからですか?番号.iso-8859-1(西欧文字)の詳細については、「バイト、文字、コード」という記事を参照してください.方法1:最も簡単で最も多くの方法を使う.<%@Page language="java"pageEncoding="GBK"%>または<%@page contenttype="text/html;charset=gbk";ここではgb 2312またはgbkを用いることができるが、gbkはgb 2312よりも多くの文字をサポートする.この方法はjspページの中国語表示に用いられる.方法2:フィルタを使用します.フィルタは主にフォームに対してコミットされ、データベースに挿入されたデータはすべて?番号.これもtomcatがrequestで指定された符号化に従って符号化されないか、それともデフォルトの符号化方式iso-8859-1で符号化されるべきかを主張する.SetCharacterEncodingFilterクラスを作成します.
import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;

public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
this.encoding=filterConfig.getInitParameter("encoding");
String value=filterConfig.getInitParameter("ignore");
if(value==null)
this.ignore=true;
else if(value.equalsIgnoreCase("true"))
this.ignore=true;
else
this.ignore=false;
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO         
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}

public void destroy() {
// TODO         
this.encoding = null;
this.filterConfig = null;
}

protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
 
そしてweb.xmlプラス
<!-- Set Character Encoding-->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.struts.common.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Set Character Encoding-->
 
フィルタを使用するメリットは、特にプロジェクトにあります.また、国際化を使用する場合に便利です.ページに<%@page language="java"pageEncoding="UTF-8"%>を指定すると、サーバはローカルLocaleに従って正しい文字セットを表示します.フィルタの使用を特にお勧めします.方法3:tomcatのserverを変更する.xmlファイルのURIEncoding.この方法は主にurlから文字列を取得する問題を対象としている.tomcat 5.0以降ではpostとgetの方法が符号化を処理する際に異なる.urlで中国語を取得すると現れますか?番号.でもtomcat 4.1バージョンはtomcat 4のため問題ありません.1のpostとgetメソッドは符号化を処理する際に同じである.