JSP中国語文字化けし問題分析


要求ページ、たとえばHTML:contentはブラウザのエンコードフォーマットを指定し、メニューバー->表示->エンコードは、上記のエンコードフォーマットと一致します.   JSP:<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%>JSPデフォルトpageEncoding="ISO-8859-1"は、主にJSPファイルcharacter encodingに使用する.
<%@page contentType="text/html;charset=UTF-8"%>contentTypeは、JSPからブラウザのエンコードフォーマットに戻ることを指定します.メニューバー->表示->エンコードは、上記のエンコードフォーマットと一致します.
 
<%
    //       ,
    //---------     ,  post get---------
    //        :      content  
    //request.setCharacterEncoding("UTF-8");
    //  form       
	//String corpName = request.getParameter("corpName");
	//System.out.println("corpName:"+corpName);
	
	//---------     ,   post---------
	String corpName = request.getParameter("corpName");
	//  TOMCAT            ISO-8859-1,
	//       ISO-8859-1         
	//           :      content  
	//corpName = new String(corpName.getBytes("ISO-8859-1"),"UTF-8");
	
	//{
	//     get  
	corpName = java.net.URLDecoder.decode(corpName, "UTF-8");
	//}
	
	System.out.println("corpName:"+corpName);
	
	out.println("corpName:"+corpName);
%>

  
 
もう1つのケースはwindow.location.href=urlを使用することです.urlにパラメータが渡され、中国語が含まれている場合、例えばjavascriptコード:window.location.href=encodeURI(hello.jsp?name=世界))javaコード:String name=request.getParameter("name");name= java.net.URLDecoder.decode(name, "UTF-8");
 
まとめ:私たちが普段中国語の文字化けしを処理する時、もっと原理のものを理解して、問題をもっとよく解決することを望んでいます.