<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    I want to fly higher
    programming Explorer
    posts - 114,comments - 263,trackbacks - 0
          對于中文亂碼問題,Java中才用的默認(rèn)編碼方式是Unicode,而中文的編碼方式一般情況是GB2312,因為編碼格式的不同,導(dǎo)致在中文不能正常顯示。在不同的JDK版本和不同的應(yīng)用服務(wù)器中的處理方法是不同的。但是其本質(zhì)上都是一樣的,就是把中文字符轉(zhuǎn)化成合適的編碼方式,或者是把在顯示中文的環(huán)境中聲名采用GB2312的編碼。統(tǒng)一編碼方案之后自然可以正常顯示。

    1.1 JSP頁面中文亂碼

    JSP頁面中,中文顯示亂碼有兩種情況:一種是HTML中的中文亂碼,另一中是在JSP中動態(tài)輸出的中文亂碼。

    解決方案:修改代碼中page指令。具體修改如下:<% page language=”java” import=”java.util.*” contentType=”text/html;charset=gb2312” %>

    1.2 URL傳遞參數(shù)中文亂碼

    一般情況下,可以用類似http://localhost:8080/chapt4/URLCharset.jsp?param='中文'這種形式來傳遞參數(shù),而且HTML在處理表單的時候,當(dāng)表單的method采用get方法的時候,傳遞參數(shù)的形式與URL傳遞參數(shù)的形式基本一樣。

    對于URL傳遞中文參數(shù)亂碼這個問題,其處理方法比較獨(dú)特,僅僅轉(zhuǎn)換這個中文字符串的編碼或者設(shè)置JSP頁面顯示編碼都是不能解決問題的。這里需要對Tomcat服務(wù)器的配置文件進(jìn)行修改,即Tomcatconf目錄下的server.xml配置文件,在<Connector>中添加URLEconding=”gb2312”

    1.3表單提交中文亂碼

           對于表單中提交的數(shù)據(jù),可以使用request.getParameter("")的方法獲取。但是當(dāng)表單中如果出現(xiàn)中文數(shù)據(jù)的時候就會出現(xiàn)亂碼。

           造成這個問題的原因是:在Tomcat中,對于以Post方法提交的表單采用的默認(rèn)編碼為ISO-8859-1,而這種編碼不支持中文字符。對于這個問題,可以采用轉(zhuǎn)換編碼格式的方法來解決。即可以調(diào)用String類的getBytes方法進(jìn)行編碼轉(zhuǎn)換

    1.4數(shù)據(jù)庫操作中文亂碼

           在建立數(shù)據(jù)庫的時候,應(yīng)該選擇支持中文的編碼格式,最好能和JSP頁面的編碼格式保持一致,這樣就可以盡可能減少數(shù)據(jù)庫操作的中文亂碼問題。同時在JDBC連接數(shù)據(jù)庫的時候可以使用類似下面這種形式的URLjdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;useUnicode=true;characterEncoding=gb2312

           上面所說的方法只適用于創(chuàng)建數(shù)據(jù)庫的時候已經(jīng)選擇支持中文的編碼,不過當(dāng)一個數(shù)據(jù)庫已經(jīng)創(chuàng)建而且編碼格式已經(jīng)是ISO-8859-1時,這種情況下通過重新創(chuàng)建數(shù)據(jù)庫顯然是不現(xiàn)實(shí)的。這時只有在讀取數(shù)據(jù)庫的時候進(jìn)行轉(zhuǎn)碼,使用的方法還是上一節(jié)的轉(zhuǎn)碼方法。

    1.5 Eclipse開發(fā)工具中JSP文件中文不能保存

    Eclipse中,JSP文件默認(rèn)的編碼格式為ISO-8859-1,所以在JSP代碼中間如果出現(xiàn)中文就不能保存。

    對于這個問題,這要在JSP頁面中指明頁面編碼即可。即page指令中添加pageEncoding=”gb2312”

    1.6 Eclipse開發(fā)工具中中文顯示亂碼

           Eclipse中,由于默認(rèn)的JSP編碼格式為ISO-8859-1,所以當(dāng)打開由其他編輯器編輯的JSP頁面就會出現(xiàn)亂碼。對于這個問題,只需要更改eclipse的設(shè)置即可。Eclipse,Window->Preferences->General->Content Types->Text>JSP,修改Default encoding GB2312即可。當(dāng)然也可以把jsp文件用txt打開,然后另存為UniCode格式。

    1.7 JSP下載中文文件名亂碼

    在實(shí)現(xiàn)文件下載功能的時候,如果出現(xiàn)中文文件名,如果不進(jìn)行特殊的處理,下載下來的中文文件名會變成亂碼,在下載前,就需要對這個文件名進(jìn)行處理,然后才能正常顯示中文的文件名。

           解決方案:運(yùn)用response對象的setCharacterEncodingsetHeader(filename改為ISO-8859-1編碼)setContentType方法即可。


           當(dāng)然我們在面對一些中文亂碼問題時,可以編寫過濾器filter實(shí)現(xiàn)轉(zhuǎn)換字符編碼

        PS:我覺得寫的還算詳細(xì)。一些東西參考《零基礎(chǔ)學(xué)習(xí)Java Web開發(fā)》,與大家拿出來分享。
    posted on 2010-04-26 15:41 landon 閱讀(2154) 評論(0)  編輯  收藏 所屬分類: Program
    主站蜘蛛池模板: 亚洲伦理一区二区| 亚洲精品国产美女久久久| 亚洲日韩中文字幕天堂不卡| 日韩av无码久久精品免费| 78成人精品电影在线播放日韩精品电影一区亚洲 | 9久热这里只有精品免费| 亚洲成a人在线看天堂无码| 蜜桃传媒一区二区亚洲AV| 日本不卡高清中文字幕免费| 国产精品亚洲一区二区无码| 亚洲精品无码AV中文字幕电影网站| 永久免费无码日韩视频| 亚洲男同帅GAY片在线观看| 中国国语毛片免费观看视频| 亚洲av无码乱码国产精品| 亚洲精品国产免费| 性色av极品无码专区亚洲| 亚洲国产婷婷综合在线精品| 成在人线av无码免费高潮水| 亚洲国产二区三区久久| 成年大片免费视频| 麻豆安全免费网址入口| 亚洲成AV人在线观看天堂无码| 亚洲一区二区三区免费观看 | 女人裸身j部免费视频无遮挡| 自拍偷自拍亚洲精品被多人伦好爽 | 午夜宅男在线永久免费观看网| 亚洲男人的天堂网站| 亚洲国产aⅴ综合网| 无码专区AAAAAA免费视频| 亚洲欧洲日本精品| 免费在线观看日韩| 女人体1963午夜免费视频| 亚洲欧洲日韩极速播放| 亚洲一级Av无码毛片久久精品| 91香蕉在线观看免费高清| 国产91成人精品亚洲精品| 亚洲AV无码精品色午夜在线观看| 毛片a级毛片免费播放下载| 中国黄色免费网站| 亚洲另类自拍丝袜第五页|