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.

主站蜘蛛池模板: 91福利一区二区三区| 日韩123欧美字幕| 久久青青草原亚洲av无码| 国产网友愉拍精品视频| 欧美激情二区三区| 在线观看亚洲国产| 国模私拍一区二区三区| 国产人人干| 国产aⅴ无码专区亚洲av综合网| 亚洲毛片在线看| 久久综合九色综合97婷婷| 99在线免费播放| 国产午夜福利片在线观看| 天堂久久久久久中文字幕| 色综合热无码热国产| 欧美亚洲国产精品第一页| 欧美日韩一区二区三区四区在线观看 | 人妻熟妇日韩AV在线播放| 怡春院欧美一区二区三区免费| 国产一级裸网站| 91午夜福利在线观看精品| 国产在线观看第二页| 亚洲天堂视频网站| 久久无码av一区二区三区| 1769国产精品视频免费观看| 国产日韩精品欧美一区喷| 国产一区二区三区免费观看| 日韩中文精品亚洲第三区| 国产美女在线观看| 国产在线一二三区| 夜夜操狠狠操| 中文字幕亚洲综久久2021| 欧美精品导航| 在线不卡免费视频| 精品国产自在在线在线观看| 91小视频在线观看免费版高清| 精品成人一区二区| 国产精品成人AⅤ在线一二三四| 91福利国产成人精品导航| 亚洲欧美综合精品久久成人网| 99精品福利视频| 免费国产小视频在线观看| 91视频日本| 欧美啪啪一区| 极品国产一区二区三区| 中国精品久久| 日本成人不卡视频| 国产久草视频| 干中文字幕| 日韩色图在线观看| 日韩成人高清无码| 99re66精品视频在线观看| 欧美日韩久久综合| 在线高清亚洲精品二区| 欧美亚洲欧美| 91精品啪在线观看国产60岁| 久久大香香蕉国产免费网站| 99在线视频精品| 五月天香蕉视频国产亚| 久久99精品国产麻豆宅宅| 国产00高中生在线播放| 99这里只有精品6| 8090成人午夜精品| 91精品最新国内在线播放| 免费视频在线2021入口| 國產尤物AV尤物在線觀看| 亚洲日韩精品综合在线一区二区| 一本色道久久88| 永久免费无码日韩视频| 四虎国产永久在线观看| 欧美黄网站免费观看| 精品在线免费播放| 美女高潮全身流白浆福利区| 国产精品永久久久久| 亚洲中文精品久久久久久不卡| 激情视频综合网| 久久99国产视频| 国产h视频在线观看视频| 自拍亚洲欧美精品| a级毛片免费看| 一区二区影院| 一级一级一片免费|