好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > JSP出現中文亂碼問題解決方法詳解

JSP出現中文亂碼問題解決方法詳解

熱門標簽:電話機器人需要使用網絡嗎 給地圖標注得傭金 海外圖書館地圖標注點 潤滑油銷售電銷機器人 外呼系統使用方法 如何看懂地圖標注點 自繪地圖標注數據 南通通訊外呼系統產品介紹 電銷機器人免培訓

在介紹方法之前我們首先應該清楚具體的問題有哪些,筆者在本博客當中論述的JSP中文亂碼問題有如下幾個方面:頁面亂碼、參數亂碼、表單亂碼、源文件亂碼。下面來逐一解決其中的亂碼問題。

一、JSP頁面中文亂碼

在JSP頁面中,中文顯示亂碼有兩種情況:一種是HTML中的中文亂碼,另一種是在JSP中動態輸出的中文亂碼。

先看一個JSP程序:

%@ page language="java" import="java.util.*" %>
html>
	head>
	title>中文顯示示例/title>
 
	/head> 
	body>
	這是一個中文顯示示例:
	%
		String str = "中文";
		out.print(str);
 	%>
	/body>
/html>

上面這個JSP程序看起來好像是在頁面顯示幾句中文而且標題也是中文。運行后在瀏覽器中顯示如圖所示

原因在于沒有在JSP中指定頁面顯示的編碼,消除亂碼的解決方案很簡單上面代碼中page命令修改成如下所示即可

%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312" %>
html>
	head>
	title>中文顯示示例/title>
 
	/head> 
	body>
	這是一個中文顯示示例:
	%
		String str = "中文";
		out.print(str);
 	%>
	/body>
/html>

再次運行亂碼消失,原理就是向頁面指定編碼為GB2312,那么頁面就會按照此編碼來顯示,于是亂碼消失。

二、URL傳遞參數中文亂碼

一般情況下在使用get方法提交表單的時候傳遞的參數如果是中文的話很可能會出現亂碼。

下面是一個示例程序

%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%>
html>
	head> 
		title>URL傳遞參數中文處理示例/title>
	/head>
	%
		String param = request.getParameter("param");
	%>
	body>
		a href="URLCharset.jsp?param='中文'" rel="external nofollow" >請點擊這個鏈接/a>br>
		你提交的參數為:%=param%>
	/body>
/html>

上面這個JSP程序的功能就是通過一個URL鏈接向自身傳遞一個參數,這個參數是中文字符串,這個程序的運行效果如下圖

對于URL傳遞中文參數亂碼這個問題,其處理方法比較特殊,僅僅轉換這個中文字符串或者設置JSP頁面顯示編碼都是不能解決問題的,需要修改Tomcat服務器的配置文件才能解決問題。在這里修改Tomcat的conf目錄下的server.xml配置文件,具體改后的代碼如下

Connector port="8080" protocol="HTTP/1.1" URIEncoding="gb2312"
    connectionTimeout="20000" 
    redirectPort="8443" />

在原來代碼中添加URI編碼設置URIEncoding=“gb2312”即可,重啟Tomcat服務器可以得到正確的頁面。其原理也和上面的情況類似,就是向程序指明編碼類型,然后顯示就正常了。

三、表單提交中文亂碼

對于表單的數據可以使用request.getParameter(“”)的方法獲取,但是當表單中出現中文數據的時候就會出現亂碼。

示例代碼如下

%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%>
html>
	head> 
		title>Form中文處理示例/title>
	/head> 
	body>
		font size="2">
				下面是表單內容:
			form action="AcceptFormCharset.jsp" method="post">
				用戶名:input type="text" name="userName" size="10"/>
				密 碼:input type="password" name="password" size="10"/>
				input type="submit" value="提交">
			/form> 
		/font>
	/body>
/html>

在上面的表單當中想AcceptFormCharset這個頁面提價兩項數據,下面是AcceptFormCharset.jsp的內容:

%@ page language="java" import="java.util.*"
	contentType="text/html;charset=gb2312"%>
html>
	head>
		title>Form中文亂碼/title>
	/head>
	body>
		font size="2"> 下面是表單提交以后用request取到的表單數據:br>
			%
				String userName = request.getParameter("userName");
	 			String password = request.getParameter("password");
	 			out.println("表單輸入userName的值:" + userName + "br>");
	 			out.println("表單輸入password的值:" + password + "br>");
 			 %> 
 		/font>
	/body>
/html>

在上面的程序中,如果表單輸入沒有中文,則可以正常的顯示當輸入的數據中有中文的時候,得到的結果如圖所示。

產生種結果的原因是Tomcat中對于post方法提交的表單采用的默認編碼為ISO-8859-1,而這種編碼格式不支持中文字符。對于這個問題可以采用轉換編碼格式的方法來解決,現在對AcceptFromCharset這個頁面改動如下:

%@ page language="java" import="java.util.*"
	contentType="text/html;charset=gb2312"%>
html>
	head>
		title>Form中文亂碼/title>
	/head>
	body>
		font size="2"> 下面是表單提交以后用request取到的表單數據:br>
			%
				String userName = request.getParameter("userName");
	 			String password = request.getParameter("password");
	 			out.println("表單輸入userName的值:" + new String(userName.getBytes("ISO-8859-1"), "gb2312")+ "br>");
	 		 	out.println("表單輸入password的值:" + new String(password.getBytes("ISO-8859-1"), "gb2312")+ "br>");
 			 %> 
 		/font>
	/body>
/html>

經過這樣的轉換編碼以后,所有的中文輸入都可以用request對象正常取出。在上面這個程序中,第四行和第五行是轉換編碼格式的關鍵,先從ISO-8859-1格式的字符串中取出字節內容,然后在用GB2312的編碼格式重新構造一個新的字符串。這樣就可以支持中文變淡輸入的正常取值和顯示。改進以后程序運行結果如下

經過上面的更改編碼格式的處理,表單的中文輸入亂碼問題已經得到解決。但是如果上面的表單中的輸入項不止是兩個,那么每個輸入項都需要進行編碼轉換,那樣就很麻煩了。這是我們就用到了大名鼎鼎的過濾器filter了。關于這里的內容大致的思慮和上面的一樣具體做法請參照筆者的另一篇文章。

四、Eclipse中JSP文件中文亂碼

在Eclipse或者MyEclipse中由于默認的JSP編碼格式為ISO-8859-1,所以當打開由其他編輯器編輯的JSP文件時會出現亂碼,如圖所示

對于這個問題我們只需要更改一下Eclipse或者是MyEclipse中對JSP的默認編碼就可以了,修改的地方(我的MyEclipse版本為11)如圖所示

PS

在Eclipse或者MyEclipse當中JSP文件默認的編碼為ISO-8859-1,所以在JSP代碼中間如果出現中文就不能保存,例如如下代碼

%@ page language="java" import="java.util.*" %>
html>
	head>
	title>中文顯示示例/title>
 
	/head> 
	body>
	這是一個中文顯示示例:
	%
		String str = "中文";
		out.print(str);
 	%>
	/body>
/html>

修改后在保存的時候會提示如下:

現這個提示的原因在于JSP源文件中有ISO=8859-1編碼無法識別的中文字符,對于這個問題,解決辦法就是在JSP頁面中聲明頁面編碼格式即可。聲明后代碼如下:

%@ page language="java" import="java.util.*" pageEncoding="GB2312" %>
html>
	head>
	title>中文顯示示例/title>
 
	/head> 
	body>
	這是一個中文顯示示例:
	%
		String str = "中文";
		out.print(str);
 	%>
	/body>
/html>

其中第一行中pageEncoding=“gb2312”指明了JSP頁面編碼采用GB2312,這樣就可以正常保存JSP的源文件了。

遇到問題首先分析問題出現的原因,只有知道了原因才能去解決,學習分析問題的來源遠比解決這個問題重要的多。

亂碼問題的原因就是程序(Eclipse也好,瀏覽器也罷)的編碼沒有和編程人員的編碼進行統一,(就像你和一個不懂中文的人用中文交流他當然不懂了)那么解決這個問題只需要將編程人員想要的編碼告訴程序就可以了,以上解決亂碼問題的種種方法都可以說是一種聲明編碼的過程,也就是說亂碼問題終極解決方案就是:轉碼。這里的轉碼要么是編程人員手動轉,要么就是聲明一下讓程序去轉,換句話說就是:和不懂中文的交流,要么讓他學中文,要么你就去學習他的語言。

生活就是編程,編程就是生活,同之,通之!!!

到此這篇關于JSP出現中文亂碼問題解決方法詳解的文章就介紹到這了,更多相關JSP中文亂碼問題解決方法內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • jsp用過濾器解決中文亂碼問題的方法
  • JSP對URL鏈接中的中文亂碼處理方法總結
  • JSP利用過濾器解決request中文亂碼問題
  • JSP頁面中超鏈接傳遞中文參數出現亂碼問題解決方法
  • JSP中文亂碼常見3個例子及其解決方法
  • 分享JSP中文亂碼解決方法
  • JSP頁面傳參出現中文亂碼的解決方案
  • jsp之間傳參數接受中文有亂碼問題解決方法
  • jsp地址欄傳中文顯示亂碼解決方法分享

標簽:貸款邀約 南京 內江 黃石 樂山 廣州 銅川 大連

巨人網絡通訊聲明:本文標題《JSP出現中文亂碼問題解決方法詳解》,本文關鍵詞  JSP,出現,中文,亂碼,問題,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JSP出現中文亂碼問題解決方法詳解》相關的同類信息!
  • 本頁收集關于JSP出現中文亂碼問題解決方法詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产--精品一区二区三区| 天天射天天操天天| 风流世子| 久久久久久精品妓女影院| 久久久久精品乱妇中文久久久久| chinese野外gay东北男男| 欧美成人一区二区| 四影虎库最新8848| Free???性HD另类医生| 欧美日韩高清在线观看一区二区| 大尺度做爰呻吟小说疯狂进出| 我们做吧我等不及了小视频| 国产精品久久久久久精品农民工| EEUSS影院www影院入口| 久久www视频| 看污片网站| 午夜成人精品久久久久| 国产又爽又大又黄A片色戒一| 古代美女春交性| 99视频精品全部国产盗摄视频| 午夜福利gif动态XXOO视频| 2021天堂网| 97国精产品无人区一码二码| 亚洲欧洲专线一区| 欧美久久亚洲精品| 色戒app| 一级中国毛片| 欧美一级录像| 国产午夜精品久久理论片小说| 一夜七次郎久久综合伊人| 嘉义县| 亚洲尺码和欧洲尺码专线| 欧美精品在线一区二区三区| 亚洲免费播放| 女的被到爽羞羞漫画| 中文字字幕在线中文乱码的解决方法| 久久激情视频| 清纯娇妻第一次3p| 男高H漫画网站在线阅读| 新潘金莲一级婬片AAAAAA| 欧美偷拍小视频|