最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年08月19日 09:16:31   投稿:jingxian  
下面小編就為大家?guī)硪黄猨avaWEB中前后臺亂碼問題的解決方法總結。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

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配置示例:

<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>
    org.springframework.web.filter.CharacterEncodingFilter
  </filter-class>
  <init-param>
    <param-name>encoding</param=name>
    <param-value>UTF-8</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

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

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

相關文章

  • java枚舉轉(zhuǎn)list通用類過程

    java枚舉轉(zhuǎn)list通用類過程

    文章介紹了如何將Java枚舉類型轉(zhuǎn)換為List<Map<String, Object>>的通用類,該類可以實現(xiàn)枚舉到列表的轉(zhuǎn)換,并且示例了使用方法
    2025-03-03
  • 使用JPA單項一對多外鍵關聯(lián)

    使用JPA單項一對多外鍵關聯(lián)

    這篇文章主要介紹了使用JPA單項一對多外鍵關聯(lián),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot多數(shù)據(jù)庫連接(mysql+oracle)的實現(xiàn)

    SpringBoot多數(shù)據(jù)庫連接(mysql+oracle)的實現(xiàn)

    這篇文章主要介紹了SpringBoot多數(shù)據(jù)庫連接(mysql+oracle)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Java?Stream流使用最多的方式示例詳解

    Java?Stream流使用最多的方式示例詳解

    在 Java 編程中,Stream 流提供了一種高效、便捷的方式來處理集合數(shù)據(jù),本文將詳細介紹 Java 中 Stream 流的用法,包括基礎用法、中級用法、高級用法以及一些特殊方法的使用,感興趣的朋友一起看看吧
    2024-12-12
  • JDK源碼Enum類原理及代碼實例解析

    JDK源碼Enum類原理及代碼實例解析

    這篇文章主要介紹了JDK源碼Enum類原理及代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 實現(xiàn)Servlet程序的三種方法(小結)

    實現(xiàn)Servlet程序的三種方法(小結)

    這篇文章主要介紹了實現(xiàn)Servlet程序的三種方法(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • SpringBoot實現(xiàn)熱部署詳解

    SpringBoot實現(xiàn)熱部署詳解

    SpringBoot熱部署是一種開發(fā)時極為有用的功能,它能夠讓開發(fā)人員在代碼修改后無需手動重啟應用程序就能立即看到變化的效果,所以我本文就給打擊介紹一下為什么要使用熱部署以及實現(xiàn)熱部署的方式,需要的朋友可以參考下
    2023-07-07
  • Java常用的八種排序算法及代碼實現(xiàn)+圖解

    Java常用的八種排序算法及代碼實現(xiàn)+圖解

    這篇文章主要介紹了Java常用的八種排序算法及代碼實現(xiàn),在Java的時候,對于排序的應用需要熟練的掌握,這樣才能夠確保Java學習時候能夠有扎實的基礎能力。那Java有哪些排序算法呢?本文小編就來詳細說說Java經(jīng)典的8種排序算法,需要的朋友可以參考一下
    2021-12-12
  • java數(shù)據(jù)結構之樹基本概念解析及代碼示例

    java數(shù)據(jù)結構之樹基本概念解析及代碼示例

    這篇文章主要介紹了java數(shù)據(jù)結構之樹基本概念解析及代碼示例,介紹了樹的定義,基本術語,主要操作及實現(xiàn)等相關內(nèi)容,具有一定參考價值,需要的朋友可了解下。
    2017-11-11
  • 關于springboot 中使用httpclient或RestTemplate做MultipartFile文件跨服務傳輸?shù)膯栴}

    關于springboot 中使用httpclient或RestTemplate做MultipartFile文件跨服務傳輸

    這篇文章主要介紹了關于springboot 中使用httpclient或RestTemplate做MultipartFile文件跨服務傳輸?shù)膯栴},本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01

最新評論

五大连池市| 五常市| 南漳县| 寿光市| 渭南市| 宁武县| 商丘市| 宜川县| 崇礼县| 尚志市| 乌拉特前旗| 苍山县| 太白县| 新源县| 新宾| 延庆县| 琼中| 平利县| 垫江县| 宁国市| 湖州市| 壶关县| 巴楚县| 岳阳市| 周宁县| 冀州市| 宜良县| 罗山县| 哈尔滨市| 鸡西市| 中宁县| 揭东县| 扎赉特旗| 曲靖市| 二手房| 清徐县| 利川市| 呼图壁县| 卓尼县| 宜兴市| 庆云县|