JSP中国語文字化けし問題分析
1639 ワード
要求ページ、たとえば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からブラウザのエンコードフォーマットに戻ることを指定します.メニューバー->表示->エンコードは、上記のエンコードフォーマットと一致します.
もう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");
まとめ:私たちが普段中国語の文字化けしを処理する時、もっと原理のものを理解して、問題をもっとよく解決することを望んでいます.
<%@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");
まとめ:私たちが普段中国語の文字化けしを処理する時、もっと原理のものを理解して、問題をもっとよく解決することを望んでいます.