真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

javaWEB中前后臺亂碼問題的解決方法總結

JAVA中幾種常見的編碼格式及含義:

創(chuàng)新互聯(lián)一直通過網(wǎng)站建設和網(wǎng)站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實效"的一站式服務,以成都做網(wǎng)站、成都網(wǎng)站設計、移動互聯(lián)產(chǎn)品、成都全網(wǎng)營銷推廣服務為核心業(yè)務。10余年網(wǎng)站制作的經(jīng)驗,使用新網(wǎng)站建設技術,全新開發(fā)出的標準網(wǎng)站,不但價格便宜而且實用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡單易用,維護方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設的選擇。

ASCII 碼

學過計算機的人都知道 ASCII 碼,總共有 128 個,用一個字節(jié)的低 7 位表示,0~31 是控制字符如換行回車刪除等;32~126 是打印字符,可以通過鍵盤輸入并且能夠顯示出來。

ISO-8859-1

128 個字符顯然是不夠用的,于是 ISO 組織在 ASCII 碼基礎上又制定了一些列標準用來擴展 ASCII 編碼,它們是 ISO-8859-1~ISO-8859-15,其中 ISO-8859-1 涵蓋了大多數(shù)西歐語言字符,所有應用的最廣泛。ISO-8859-1 仍然是單字節(jié)編碼,它總共能表示 256 個字符。

GB2312

它的全稱是《信息交換用漢字編碼字符集 基本集》,它是雙字節(jié)編碼,總的編碼范圍是 A1-F7,其中從 A1-A9 是符號區(qū),總共包含 682 個符號,從 B0-F7 是漢字區(qū),包含 6763 個漢字。

GBK

全稱叫《漢字內(nèi)碼擴展規(guī)范》,是國家技術監(jiān)督局為 windows95 所制定的新的漢字內(nèi)碼規(guī)范,它的出現(xiàn)是為了擴展 GB2312,加入更多的漢字,它的編碼范圍是 8140~FEFE(去掉 XX7F)總共有 23940 個碼位,它能表示 21003 個漢字,它的編碼是和 GB2312 兼容的,也就是說用 GB2312 編碼的漢字可以用 GBK 來解碼,并且不會有亂碼。

GB18030

全稱是《信息交換用漢字編碼字符集》,是我國的強制標準,它可能是單字節(jié)、雙字節(jié)或者四字節(jié)編碼,它的編碼與 GB2312 編碼兼容,這個雖然是國家標準,但是實際應用系統(tǒng)中使用的并不廣泛。

UTF-16

說到 UTF 必須要提到 Unicode(Universal Code 統(tǒng)一碼),ISO 試圖想創(chuàng)建一個全新的超語言字典,世界上所有的語言都可以通過這本字典來相互翻譯。可想而知這個字典是多么的復雜,關于 Unicode 的詳細規(guī)范可以參考相應文檔。Unicode 是 Java 和 XML 的基礎,下面詳細介紹 Unicode 在計算機中的存儲形式。

UTF-16 具體定義了 Unicode 字符在計算機中存取方法。UTF-16 用兩個字節(jié)來表示 Unicode 轉(zhuǎn)化格式,這個是定長的表示方法,不論什么字符都可以用兩個字節(jié)表示,兩個字節(jié)是 16 個 bit,所以叫 UTF-16。UTF-16 表示字符非常方便,每兩個字節(jié)表示一個字符,這個在字符串操作時就大大簡化了操作,這也是 Java 以 UTF-16 作為內(nèi)存的字符存儲格式的一個很重要的原因。

UTF-8

UTF-16 統(tǒng)一采用兩個字節(jié)表示一個字符,雖然在表示上非常簡單方便,但是也有其缺點,有很大一部分字符用一個字節(jié)就可以表示的現(xiàn)在要兩個字節(jié)表示,存儲空間放大了一倍,在現(xiàn)在的網(wǎng)絡帶寬還非常有限的今天,這樣會增大網(wǎng)絡傳輸?shù)牧髁浚乙矝]必要。而 UTF-8 采用了一種變長技術,每個編碼區(qū)域有不同的字碼長度。不同類型的字符可以是由 1~6 個字節(jié)組成。

UTF-8 編碼規(guī)則:

1.如果一個字節(jié),最高位(第 8 位)為 0,表示這是一個 ASCII 字符(00 – 7F)??梢?,所有 ASCII 編碼已經(jīng)是 UTF-8 了。

2.如果一個字節(jié),以 11 開頭,連續(xù)的 1 的個數(shù)暗示這個字符的字節(jié)數(shù),例如:110xxxxx 代表它是雙字節(jié) UTF-8 字符的首字節(jié)。

3.如果一個字節(jié),以 10 開始,表示它不是首字節(jié),需要向前查找才能得到當前字符的首字節(jié)

不同編碼格式的比較

對中文字符后面四種編碼格式都能處理,GB2312 與 GBK 編碼規(guī)則類似,但是 GBK 范圍更大,它能處理所有漢字字符,所以 GB2312 與 GBK 比較應該選擇 GBK。UTF-16 與 UTF-8 都是處理 Unicode 編碼,它們的編碼規(guī)則不太相同,相對來說 UTF-16 編碼效率最高,字符到字節(jié)相互轉(zhuǎn)換更簡單,進行字符串操作也更好。它適合在本地磁盤和內(nèi)存之間使用,可以進行字符和字節(jié)之間快速切換,如 Java 的內(nèi)存編碼就是采用 UTF-16 編碼。但是它不適合在網(wǎng)絡之間傳輸,因為網(wǎng)絡傳輸容易損壞字節(jié)流,一旦字節(jié)流損壞將很難恢復,想比較而言 UTF-8 更適合網(wǎng)絡傳輸,對 ASCII 字符采用單字節(jié)存儲,另外單個字符損壞也不會影響后面其它字符,在編碼效率上介于 GBK 和 UTF-16 之間,所以 UTF-8 在編碼效率上和編碼安全性上做了平衡,是理想的中文編碼方式。

中文亂碼解決方案:

1.tomcat的自帶編碼是ISO-8859-1的格式,是不兼容中文的編碼的。采用相同的格式去接收(ISO-8859-1),然后用能解析的編碼(utf-8)去轉(zhuǎn)換。處理之后再發(fā)往前臺。發(fā)往前臺的時候需要設置:

res.setContentType("text/html;charset=utf-8");//設置頁面的字符編碼,解決界面顯示中文亂碼的問題;

2.req.setCharacterEncoding("utf-8");//必須寫在第一位,因為采用這種方式去讀取數(shù)據(jù),否則數(shù)據(jù)會出錯。

3.Spring提供了一個CharacterEncodingFilter過濾器,可以用于解決亂碼問題。

CharacterEncodingFilter使用時需要注意一下問題:

表單數(shù)據(jù)以POST方式提交;

在web.xml中配置CharacterEncodingFilter過濾器

頁面編碼和過濾器指定編碼要保持一致

 CharacterEncodingFilter配置示例:


  encodingFilter
  
    org.springframework.web.filter.CharacterEncodingFilter
  
  
    encoding
    UTF-8
  


  encodingFilter
  /*

以上為自己寫代碼過程中遇到問題查資料及自己總結所寫,所了解的就這些,解決方案應該還有。

這篇javaWEB中前后臺亂碼問題的解決方法總結就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。


網(wǎng)頁名稱:javaWEB中前后臺亂碼問題的解決方法總結
URL分享:http://weahome.cn/article/pepcii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部