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.

主站蜘蛛池模板: 伊人久久大香线蕉aⅴ色| 国产激情在线视频| 伊人国产无码高清视频| 久久毛片基地| 麻豆国产在线观看一区二区 | 中文字幕乱妇无码AV在线| 97久久精品人人| 欧美中文一区| 国产视频大全| www中文字幕在线观看| 精品国产一区二区三区在线观看| 青青国产成人免费精品视频| 国产精品成人第一区| 日韩欧美国产精品| 国产91精品调教在线播放| 国产精品一区在线麻豆| 免费高清自慰一区二区三区| 国产成人艳妇AA视频在线| 色噜噜综合网| a级毛片免费在线观看| 狠狠综合久久| 97免费在线观看视频| 综合成人国产| www.亚洲一区二区三区| 国产三级毛片| 精品视频一区二区观看| 国产精品理论片| 蜜臀av性久久久久蜜臀aⅴ麻豆| 在线观看热码亚洲av每日更新| 亚洲国产中文欧美在线人成大黄瓜 | 亚洲国产亚综合在线区| 三级视频中文字幕| 国产三级韩国三级理| 国产靠逼视频| 999国内精品视频免费| a欧美在线| 国产爽爽视频| 午夜a视频| 国产精品精品视频| 国产又黄又硬又粗| 精品国产成人三级在线观看| 亚洲欧美国产五月天综合| 日韩无码黄色网站| 久草视频一区| 免费中文字幕一级毛片| 在线国产综合一区二区三区| 亚洲精选无码久久久| 国产丝袜无码精品| 欧美视频免费一区二区三区| 亚洲最黄视频| 久久综合九色综合97网| 狠狠亚洲五月天| 亚洲狠狠婷婷综合久久久久| 国产在线无码一区二区三区| 2022国产无码在线| 一级黄色网站在线免费看| 国产精品午夜福利麻豆| 日韩精品亚洲精品第一页| 无码免费视频| 国产新AV天堂| 久久精品只有这里有| 东京热av无码电影一区二区| 在线免费观看a视频| 无码精品一区二区久久久| 女人18毛片一级毛片在线 | 国产午夜精品鲁丝片| 自慰网址在线观看| 乱色熟女综合一区二区| 国产九九精品视频| 亚洲综合欧美在线一区在线播放| 67194成是人免费无码| 亚洲欧美另类日本| 制服丝袜国产精品| 国产老女人精品免费视频| 国产精品欧美亚洲韩国日本不卡| 亚洲综合色区在线播放2019| 国产成在线观看免费视频| 国产在线视频自拍| 国产a在视频线精品视频下载| 色久综合在线| 一区二区欧美日韩高清免费| 久热中文字幕在线观看|