日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:453日期:2022-06-08 09:45:03

在介紹方法之前我們首先應該清楚具體的問題有哪些,筆者在本博客當中論述的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
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
中文字幕一区二区三区四区久久| 国产精品久久久久久妇女| 国产日韩一区| 亚洲精品一级| 人人精品久久| 日韩在线成人| 欧美一区三区| 国产99久久| 99久久久久久中文字幕一区| 日韩国产网站| 日韩在线欧美| 999精品色在线播放| 亚洲一区二区三区四区电影| 99视频在线精品国自产拍免费观看| 国产在线看片免费视频在线观看| 红杏一区二区三区| 日韩国产欧美| 樱桃成人精品视频在线播放| 国产一区导航| 日韩av中文字幕一区| 国产美女视频一区二区| 91欧美日韩在线| 成人污污视频| 国内激情久久| 在线午夜精品| 国产伦乱精品| 肉色欧美久久久久久久免费看| 久久久久久免费视频| 水蜜桃久久夜色精品一区的特点| 日韩福利视频导航| 久久精品福利| 亚洲在线成人| 亚洲性视频在线| 成人一区不卡| 亚洲综合电影一区二区三区| 国产精品观看| 成人在线观看免费视频| 亚洲激情五月| 国产精品观看| 国产精品美女| www.51av欧美视频| 免费在线观看精品| 国产成人精品一区二区三区免费| 欧美+亚洲+精品+三区| 欧美日本不卡高清| 亚洲精品在线观看91| 欧美日一区二区在线观看| 欧美久久精品| 蜜桃一区二区三区在线观看| 国产精品毛片久久| 日韩一区中文| а√天堂中文在线资源8| 亚洲精品在线a| 在线精品视频在线观看高清| 久久99国产精品视频| 日本在线不卡视频| 99riav国产精品| 五月激情久久| 水蜜桃精品av一区二区| 日本少妇精品亚洲第一区| 亚洲一区网站| 黑丝美女一区二区| 日本久久成人网| 色偷偷色偷偷色偷偷在线视频| 日韩av中文在线观看| 久久国产成人| 99精品在线观看| 中文字幕高清在线播放| 久久99久久人婷婷精品综合| 日韩精品一级二级| 女人av一区| 亚洲国产一区二区三区在线播放| 国产精品字幕| 日韩免费福利视频| 日本欧美不卡| 亚洲成人不卡| 欧美日韩一二三四| 亚洲精品极品少妇16p| 99在线观看免费视频精品观看| 婷婷精品视频| 宅男噜噜噜66国产日韩在线观看| 高清一区二区| 日韩毛片视频| 欧美日韩中文字幕一区二区三区| 欧美日韩国产观看视频| 国产精品99一区二区三| 亚洲伦乱视频| 香蕉久久国产| 中文字幕亚洲精品乱码| 欧美啪啪一区| 捆绑调教日本一区二区三区| 久久久9色精品国产一区二区三区| 视频一区视频二区中文字幕| 精品伊人久久久| 久久婷婷国产| 黑森林国产精品av| 久久精品亚洲人成影院| 午夜在线精品偷拍| 欧美一区91| 日韩成人高清| 日韩精品一二三四| 国产精品福利在线观看播放| 欧美69视频| 国产精品资源| 性欧美videohd高精| 亚洲1区在线| 成人自拍av| 亚洲免费资源| 九九九精品视频| 蜜臀a∨国产成人精品| 精品久久影院| 黄色精品网站| 国产福利91精品一区二区| 亚洲毛片一区| 91精品一区国产高清在线gif| 91成人小视频| 在线国产一区二区| 国产成人久久| 国产精品美女在线观看直播| 国产视频一区欧美| 四季av一区二区凹凸精品| 婷婷亚洲成人| 老鸭窝毛片一区二区三区| 黄毛片在线观看| 国产精品v日韩精品v欧美精品网站 | 色综合狠狠操| 国产精品最新| 亚洲97av| 青青国产91久久久久久| 免费看日韩精品| 性欧美精品高清| 合欧美一区二区三区| 色老板在线视频一区二区| 国产亚洲观看| 欧美日韩18| 蜜桃视频在线观看一区| 一区在线视频观看| 国产欧美日韩精品一区二区三区| 久久精品免费一区二区三区| 成人在线视频区| 欧美视频一区| 欧美另类中文字幕| 日本欧美韩国一区三区| 亚洲黄色免费av| 日本伊人午夜精品| 亚洲欧洲一区| 青草国产精品| 欧美日韩免费观看视频| 99久久99久久精品国产片果冰| 日韩欧美另类一区二区| 国产精品一国产精品k频道56| 在线观看精品| 亚洲一区二区三区久久久| 福利一区二区| 日韩免费精品| 亚洲欧美日韩精品一区二区| 国产一区二区三区不卡av| 亚洲精品裸体| 高清不卡一区| 国产欧美69| 欧美视频一区| 亚洲永久精品唐人导航网址| 婷婷国产精品| 日韩在线看片| 亚洲资源av| 日韩88av| 久久国际精品| 激情黄产视频在线免费观看| 青青国产精品| 在线视频观看日韩| 亚洲www啪成人一区二区| 国产精品久久久久久久免费观看| 久久精品av麻豆的观看方式| 亚洲天堂日韩在线| a国产在线视频| 精品三级久久久| 精品72久久久久中文字幕| 日韩国产高清在线| 日韩黄色av| 91精品国产调教在线观看| 欧美不卡高清一区二区三区| 婷婷综合六月| 亚洲精品123区| 日韩中文字幕高清在线观看| 亚洲免费毛片| 7777精品| 免费亚洲一区| 婷婷激情一区| 亚洲在线国产日韩欧美| 日韩欧美激情电影| 国产精品一区二区免费福利视频| 美女久久网站| 中文久久精品| 国产亚洲电影| 日本v片在线高清不卡在线观看| 亚洲乱码一区| 国产精品99久久精品| 欧美va亚洲va日韩∨a综合色| 亚洲一区二区三区四区五区午夜| 国产亚洲高清视频|