亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        JSP頁面中文亂碼解決方法

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

        任憲臻+梁宏英

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

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

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

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

        1 字符集與字符編碼

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

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

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

        為了使開發(fā)的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(若系統(tǒng)屬性org.apache.catalina.STRICT_SERVLET_COMPLIANCE的被設置為true,則URIEncoding屬性的默認值為ISO-8859-1)。

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

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

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

        4 編碼設置總結

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

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

        (2)使用post請求時,為了避免中文亂碼顯示,可以在獲取請求參數(shù)值前,首先設置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從入門到精通.電子工業(yè)出版社,2012.

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

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

        国产精品毛片99久久久久| 免费人成在线观看| 麻豆成年人视频在线观看| 91久久精品一区二区| 中文字幕女同系列在线看一| 精品免费国产一区二区三区四区| 欧美高清精品一区二区| 中国无码人妻丰满熟妇啪啪软件| 乱子轮熟睡1区| 大地资源在线观看官网第三页| 欧美日韩色另类综合| 极品av麻豆国产在线观看| 免费拍拍拍网站| 日韩AVAV天堂AV在线| 国产一级大片免费看| 日本香蕉久久一区二区视频| 日韩av二区三区一区| 精品国产一区二区三区久久女人| 青青草一级视频在线观看| 日本一区二区视频免费观看| 日韩精品成人一区二区三区久久久| 亚洲午夜精品国产一区二区三区 | 亚洲av无码之日韩精品| 亚洲成色www久久网站夜月| 人人玩人人添人人澡| 日韩精品久久久一区 | 国产精品国产三级国产密月| 人妻久久久一区二区三区蜜臀| 亚洲国产精品无码中文字| 绝顶潮喷绝叫在线观看| 男女高潮免费观看无遮挡| 亚洲色无码播放| 国产亚洲精品看片在线观看| 色偷偷亚洲第一综合网| 亚洲av永久久无久之码精| 国产av黄色一区二区| 久久精品国产精品亚洲艾| 一区二区午夜视频在线观看| 少妇又色又爽又高潮在线看| 青青草在线免费视频播放| 亚洲av永久无码精品网站|