JSP中GET/POST伝達パラメータ中国語文字化け


問題の説明:
1つのjspページでget/post方式で値を伝達し、バックグラウンドgetParameterはパラメータ値を取ってデータベースに保存する.次にjspページに表示します.データベース表示およびjspページ表示に中国語の文字化けしが表示されます.
参照
サーブレットRequestオブジェクトのgetParameterなどのメソッドでは、パラメータをどの文字セットで符号化してURL符号化するか、以下の3つのケースを記載します.
(1)HTTP要求メッセージの要求ラインにおけるURLアドレス後のパラメータについてgetParameterなどの方法でURL復号を行う際に用いられる文字セット符号化はサーブレット仕様では明確に規定されておらず,各サーブレットエンジンメーカーが独自に決定する.この場合、TomcatのサーブレットRequestオブジェクトのgetParameterなどのメソッドでは、デフォルトでISO 8859-1文字セット符号化を用いてURL復号を行うため、正しい中国語パラメータ情報を返すことができない.
(2)POST方式における「アプリケーション/x-www-form-urlencoded」符号化形式の実体コンテンツに対して、getParameter等の手法は、サーブレットRequestオブジェクトのgetCharacterEncoding方式で返される文字セット符号化でURL復号を行う.実際、IEブラウザによって生成されたHTTP要求メッセージにおいて、実体コンテンツをURL符号化するための文字セット符号化がどのような方法でも指定されていない場合、サーブレットエンジンは、要求メッセージの実体コンテンツの文字セット符号化を知ることができず、getCharacterEncoding()メソッドの戻り値はnullとなる.この場合、サーブレットRequestオブジェクトのgetParameterなどのメソッドは、デフォルトのISO 8859-1文字セット符号化を使用してエンティティコンテンツのパラメータをURL復号するので、正しい中国語パラメータ情報を返すこともできません.
(3)サーブレットRequestインタフェースには、要求メッセージにおける実体コンテンツの文字セット符号化名を設定するsetCharacterEncodingメソッドが定義、getParameterメソッドは、そのメソッドで設定文字セット符号化により実体コンテンツをURL復号するので、サーブレットRequestを使用する.setCharacterEncodingメソッドは、エンティティコンテンツの文字セットをそのURL符号化前の文字セット符号化に符号化するように設定し、getParameterメソッドは、エンティティコンテンツから正しい中国語パラメータ情報を返すことができる.しかし、注意すべきことは、サーブレット・リクエストです.setCharacterEncodingメソッドは、getParameterメソッドがPOST方式の「アプリケーション/x-www-form-urlencoded」符号化形式のエンティティコンテンツをURL復号する結果にのみ影響する、要求メッセージのエンティティコンテンツの文字セット符号化名を設定する.getParameterメソッドがHTTPリクエストメッセージのリクエスト行におけるURLアドレスの後のパラメータをURL復号した結果には影響しない.
解決方法:

public class EncodingConvert 
{
	/**
	 *     ,    utf-8     
	 * @param target
	 * @return
	 */
	public String convert2UTF8(String target)
	{
		String result = "";
		try 
		{
			result = new String(target.getBytes("ISO-8859-1"),"utf-8");
			return result;
		} 
		catch (UnsupportedEncodingException e) 
		{
			System.out.println("      :");
			e.printStackTrace();
			return null;
		}
	}
}