Servlet要求と中国語の文字化け問題に応答します。

1686 ワード

Servlet要求と応答の中国語の文字化けを解決します。
要求パラメータの中国語の文字化け問題
post方式setCharcterEncocding()この方法はpost要求方式にのみ有効で、get要求方式は無効です。
HttpServletRequestインターフェースは、requestオブジェクトの復号方式を設定するためのset CharcterEnccoding()方法を提供する。
public void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		//  request       
		request.setCharacterEncoding("UTF_8");
	}
パラメータに対する中国語の文字化け問題
第一種類
設定HttpServletResonseはUTF-8を使ってエンコードします。
response.setCharacterEncoding("UTF-8");
指定されたエンコーディングの使用をガイドに通知します。
Response.setHeader("Content-Type","text/html;charset=UTF-8");
public void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
			//    
			response.setCharacterEncoding("UTF-8");
			//    
			response.setHeader("Content-Type", "text/html;charset=UTF-8");
	}
第二種
つまり、設定HttpServletResonseはUTF-8を使って符号化しても、遊覧器に指定の符号化を使うように通知します。
response.setContentType("text/html;charset=UTF-8");
public void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
			//  
			response.setContentType("text/html;charset=UTF-8");
	}
まとめ(post方式)
要求を解決して中国語の文字化け問題に応答します。
public void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
			//  
			request.setCharacterEncoding("UTF-8");
			//  
			response.setContentType("text/html;charset=UTF-8");
	}