999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

JSP頁面中文亂碼解決方法

2017-04-25 17:36:01任憲臻梁宏英
數字技術與應用 2017年1期

任憲臻+梁宏英

摘要:在Java Web應用開發過程中,顯示中文信息頁面時經常出現亂碼問題。出現中文亂碼問題的根本主要在于字符編碼,大部分亂碼是因頁面編碼不一致引起。筆者根據實際應用開發中遇到的問題,對基于Eclipse Java EE IDE for Web Developers(以下簡稱Eclipse EE)+Tomcat8.0開發中遇到的JSP中文亂碼問題,總結提出了一種行之有效的解決辦法,可以有效地解決JSP中文亂碼問題。

關鍵詞:字符集;字符編碼;中文亂碼

中圖分類號:TP31 文獻標識碼:A 文章編號:1007-9416(2017)01-0154-01

在Java Web應用開發中,JSP頁面顯示中文信息亂碼一般表現為:JSP編碼亂碼、HTML編碼亂碼、request獲取數據亂碼、response輸出信息亂碼等,本文主要針對出現的這些亂碼問題,提出一種行之有效的解決中文顯示亂碼的方法。

1 字符集與字符編碼

字符是各種文字和符號的總稱,包括各個國家的文字、標點符號、圖形符號、數字等,而字符集是多個字符的集合。字符集種類較多,常見字符集有ASCII字符集、GB2312字符集、GBK字符集、GB18030字符集、Unicode字符集等。

計算機要處理各種字符集中的字符,首先需要對字符進行編碼,以便計算機能夠識別、存儲各種字符。所謂字符編碼,是指以二進制數字對應字符集中的字符,即規定每個字符分別用一個字節還是多個字節存儲、用哪些字節存儲等。因此,對字符進行編碼是信息交流的技術基礎。字符編碼和字符集不同,一種字符集可以有一種或多種字符編碼,如Unicode字符集有多種編碼方式,如UTF-8、UTF-16、UTF-32等。

2 在Eclipse EE下更改默認字符集編碼

為了使開發的Java Web應用能夠具有更好的國際化支持、能夠最大程度地支持中文輸出,在Eclipse EE下編寫文件最好使用UTF-8編碼。在Eclipse EE下修改默認字符集編碼的方法如下:

(1)依次單擊Window->Preferences->General->Wordspace,在右側的Text file encoding處,勾選other選項,選擇UTF-8。

(2)依次單擊Window-> Preferences ->Web->CSS Files/HTML Files/JSP Files(每次選擇一種類型的文件設置),在右側的Encoding處,選擇“ISO 10646/Unicode(UTF-8)”。

(3)完成以上操作,單擊“OK”按鈕保存設置。至此,文件編碼設置完畢。

3 修改Tomcat8.0的server.xml文件

在tomcat8.0安裝目錄下的conf目錄中,有一個名為server.xml的文件,該文件主要用于對整個容器進行相關的配置。在server.xml文件中,被稱為連接器的元素主要負責接收客戶的請求,以及向客戶端回送響應的消息。元素有一個URIEncoding屬性,該屬性用于指定Tomcat服務器解碼URL的字符編碼。在Tomcat8.0中,如果沒有顯式指定URIEncoding屬性的值,則使用其默認值UTF-8(若系統屬性org.apache.catalina.STRICT_SERVLET_COMPLIANCE的被設置為true,則URIEncoding屬性的默認值為ISO-8859-1)。

為了避免中文顯示亂碼,可以為元素的URIEncoding屬性顯示指定值為“UTF-8”,這樣就明確指定Tomcat8服務器用“UTF-8”對URL進行解碼,添加代碼如下:

指定URIEncoding="UTF-8"后,如果請求的URL里面的參數也是使用UTF-8編碼,那么即使URL請求的參數中包含了中文字符,在客戶端顯示中文也不會出現亂碼,但是如果URL里面的參數不是使用UTF-8編碼(如使用GBK編碼),此時因為請求URL的編碼與Tomcat解碼應用的編碼不一致,如果客戶端未對接收的信息進行正確的編碼轉換,可能就會發生中文顯示亂碼問題。因此,為了避免亂碼,請求URL的編碼方式盡量要與tomcat的解碼方式保持一致。

但是麻煩的是,沒有規范明確指定URL采用的具體的編碼方法,而是交給應用程序(瀏覽器)自己決定,這就導致“URL編碼”成為了一個混亂的領域。目前很多瀏覽器使用UTF-8作為URL的默認編碼,也有瀏覽器使用“ISO-8859-1”編碼URL,或者使用當前頁面的編碼。為了使請求URL的編碼方式與Tomcat服務器的解碼方式保持一致,可以指定瀏覽器發送請求信息時的編碼,如在IE11中,可以指定以UTF-8編碼發送URL路徑,如圖1所示。

4 編碼設置總結

經過上述設置,JSP中文亂碼問題基本可以得到解決,但是有以下幾點在實際應用中還需要注意:

(1)Tomcat配置文件Server.xml中URIEncoding="UTF-8" 設置只對get類型的請求有效,對post請求類型無效。所以即使配置了URIEncoding="UTF-8",在服務器端接收到的post類型的請求參數編碼仍然為“ISO-8859-1”,而不是“UTF-8”。

(2)使用post請求時,為了避免中文亂碼顯示,可以在獲取請求參數值前,首先設置request對象和response對象的字符編碼。

<% request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");%>

(3)如果JSP程序中使用了Java Bean的屬性設置語句,那么上述2)中的字符編碼設置一定要放置在Java Bean屬性設置之前。

<%request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");%>

參考文獻

[1]宋智軍,邱仲潘.JSP從入門到精通.電子工業出版社,2012.

[2]何福貴,張海,張力展,著.JSP開發案例教程.機械工業出版社,2013.

[3]耿祥義,張躍平.JSP基礎教程.清華大學出版社,2009.

主站蜘蛛池模板: 99视频在线观看免费| 成人看片欧美一区二区| 五月丁香伊人啪啪手机免费观看| 另类欧美日韩| 91人妻日韩人妻无码专区精品| 国内精品一区二区在线观看| 亚洲一区二区约美女探花| 亚洲综合香蕉| 精品无码国产自产野外拍在线| 中文毛片无遮挡播放免费| 国产视频大全| 成年人视频一区二区| 国产精品xxx| 熟妇人妻无乱码中文字幕真矢织江 | 久久久波多野结衣av一区二区| 久久永久免费人妻精品| 国产精品欧美日本韩免费一区二区三区不卡 | 国产av无码日韩av无码网站 | 国产人在线成免费视频| 色偷偷一区二区三区| 9丨情侣偷在线精品国产| 亚洲天堂免费在线视频| 四虎国产成人免费观看| 免费又黄又爽又猛大片午夜| 亚洲精品无码日韩国产不卡| 成人一区在线| 九九热精品在线视频| 国产无码精品在线播放| 黄色网址免费在线| 国产国产人成免费视频77777| www.精品国产| 亚洲丝袜第一页| 波多野吉衣一区二区三区av| 色欲色欲久久综合网| 99视频全部免费| 日韩av在线直播| 国产综合亚洲欧洲区精品无码| 亚洲中文字幕在线一区播放| 亚洲视频无码| 国产综合另类小说色区色噜噜| 亚洲天堂网在线观看视频| 国内精品久久久久鸭| а∨天堂一区中文字幕| 国产极品粉嫩小泬免费看| 波多野结衣视频网站| 日本精品影院| 日本中文字幕久久网站| 毛片基地美国正在播放亚洲| 国产激情第一页| 99视频在线观看免费| 激情六月丁香婷婷| 成人国产精品网站在线看| 婷婷五月在线视频| 国产第四页| 国产精品一线天| 久久天天躁狠狠躁夜夜2020一| 日韩人妻无码制服丝袜视频| 美女毛片在线| 免费看美女自慰的网站| 国产精品99在线观看| 一本大道香蕉中文日本不卡高清二区| 国产第一色| 亚洲美女高潮久久久久久久| 久久人搡人人玩人妻精品| 亚洲精品成人福利在线电影| 亚洲黄网在线| 波多野结衣视频一区二区 | 一区二区午夜| 国产人人射| 国产丝袜第一页| 免费一级毛片在线播放傲雪网| 国产成人久久综合一区| 91精品国产综合久久不国产大片| 亚洲性色永久网址| 亚洲成人免费在线| 亚洲视频在线青青| 拍国产真实乱人偷精品| 亚洲综合色区在线播放2019| 欧美成人h精品网站| 国产成人麻豆精品| 波多野结衣国产精品| 首页亚洲国产丝袜长腿综合|