學習JSP的過程中總會碰到中文亂碼問題,有的是post方式提交沒問題,用get方式提交有亂碼,還有的是部署到tomcat中沒問題,在Eclipse中啟動tomcat,發現用get方式提交有亂碼。產生亂碼的根源是tomcat、java所用的編碼方式不同。所以要解決中文亂碼問題,首先要保證各個頁面所用的編碼方式一致,不管是html頁面還是jsp頁面,都指定為同一種編碼方式,如GB18030。
(1)html頁面
<meta charset="GB18030">
(2)jsp頁面
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
可以在Eclipse裡設置html頁面及jsp頁面的編碼方式統一為GB18030
接下來,就是指定tomat所用的編碼方式了。打開tomcat目錄下的conf目錄下的server.xml文件,修改
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>該行為:
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="gb2312"
connectionTimeout="20000"
redirectPort="8443" useBodyEncodingForURI="true" />
注意紅色加粗部分是新增的。改好後,需要重啟tomcat生效。
為了防止在Eclipse中啟動tomcat,用get方式提交有亂碼。需要對Eclipse中配置的tomcat的配置文件做同樣的修改。
最後,在get或post接收頁面寫上:
request.setCharacterEncoding("GB18030");
通過上面的步驟可以較好的解決JSP中文亂碼問題。