一文搞懂字元集編碼詳細介紹

来源:https://www.cnblogs.com/gxq666/archive/2018/10/09/9758284.html
-Advertisement-
Play Games

線上學習: [撩課-JavaWeb系列1之基礎語法-前端基礎][撩課-JavaWeb系列2之XML][撩課-JavaWeb系列3之MySQL][撩課-JavaWeb系列4之JDBC][撩課-JavaWeb系列5之web伺服器-idea] 一、字元集的由來 二、ASSCII 三、unicode 四、U ...


線上學習:

[撩課-JavaWeb系列1之基礎語法-前端基礎]
[撩課-JavaWeb系列2之XML]
[撩課-JavaWeb系列3之MySQL]
[撩課-JavaWeb系列4之JDBC]
[撩課-JavaWeb系列5之web伺服器-idea]

一、字元集的由來

電腦只能識別二進位代碼
無論是電腦程式還是數據,
最終都會轉換成二進位,
電腦才能認識。

為了電腦不只能做科學計算,
也能處理文字信息。

人們想出了給每一個文字元號編碼
以便於計算識別處理的辦法,
這就是電腦字元集的由來。

二、ASSCII

一套文字元號及其編碼,比較規則 的集合。
20世紀60年代初
美國標準化組織ANSI發佈了第一個字元集。
ASCII

後來又進一步變成了國際標準ISO-646
各大字元集
自ASCII後。

為了處理不同的文字。
各大電腦公司,各國,標準化政府,
組織先後發明瞭幾百種字元集。

`ISO-8859`
`GB2312-80`
`GBK`
`BIG5`

這些五花八門的字元集
從收錄的字元集到編碼規則各不相同。

給電腦軟體開發和移值
帶來了很大的困難。

一個軟體要在使用
不同文字的國家和地區發佈,

必須得要做本地化開發。
基於這個原因,要統一字元編碼。

三、unicode

為了統一字元編碼。
國際標準化組織ISO的一些成員國於1984年
發起制定了新的國際字元集標準。
容納全世界各種語言,文字,和  符號。

最後這個標準ISO-10646
ISO-10646發佈後,
遭到了美國電腦公司的反對。

1988年,Xerox公司提議制定了
新的以16位編碼人統一字元集。

並聯合不Apple,IBM,SUN,Microsoft等
公司成立了Unicode技術委員會。
專門負責收集,整理,和編碼。

於1991年推出了Unicode1.0
都是為了字元編碼統一問題,
ISO和Unicode協會推出了連個不同人標準。

這顯然是不利的。
後來雙方開始談判。

1991年10月達成協議。
ISO將Unicode收編。
起了個名BMP

四、UTF-16

ISO-10646編碼空間足以容納
從古自今使用過的文字和字元。

但很多文字字元已經很少用了。
超過99%的在用文字字元都編入了BMP.

因此,絕大部分情況下。
`Unicode`雙位元組方式都能滿足需求。

而且比雙位元組編碼方式4位元組原始編碼來說,
更節省記憶體和處理時間 。

這也是`Unicode`流行的原因。
`Unicode`提出了`UTF-16`的解決辦法。

五、UTF-8

雖然UTF-16解決了上面問題。
但當時的電腦和網路世界還是ASCII的天下。

只能處理單位元組數據流。
UTF-16離開了Unicode環境後。

在傳輸和處理中,
都存在問題。
於是又提出了UTF-8的解決文案,
`UTF-8`按一定的規則,
將一個`ISO10646`或`Unicode`轉換成1至4個位元組的編碼
其中ASCII轉成單位元組編碼。
也就嚴格相容了`ASCII`字元集。
`UTF-8`的2,3,4位元組
用以轉換ISO-10646標準的UCS-4原始碼。

六、GB2312

《信息交換用漢字編碼字元集》是由中國國家標準總局1980年發佈,
1981年5月1日開始實施的一套國家標準,
標準號是[GB 2312]—1980。
GB2312編碼適用於漢字處理、
漢字通信等系統之間的信息交換,
通行於中國大陸;
新加坡等地也採用此編碼。
中國大陸幾乎所有的中文系統
和國際化的軟體都支持GB 2312。

基本集共收入漢字6763個
和非漢字圖形字元682個。
整個字元集分成94個區,
每區有94個位。
每個區位上只有一個字元,
因此可用所在的區和位來對漢字進行編碼,
稱為[區位碼]

七、GBK

GBK全稱《漢字內碼擴展規範》
GBK即“國標”、
“擴展”漢語拼音的第一個字母
GBK 向下與 GB 2312 編碼相容,
向上支持 ISO 10646.1[國際標準]
是前者向後者過渡過程中的
一個承上啟下的產物。
GBK編碼,是在[GB2312-80]標準基礎上的
[內碼]擴展規範,
使用了雙[位元組編碼方案,
其編碼範圍從8140至FEFE(剔除xx7F),
共23940個碼位,共收錄了21003個漢字,
完全相容[GB2312-80]標準,
支持國際標準ISO/IEC10646-1
和國家標準`GB13000-1`中的
全部中日韓漢字
並包含了`BIG5`編碼中的所有漢字。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前期我們針對架構準備階段及需求分析這塊我們寫了2篇內容《HRMS(人力資源管理系統)-從單機應用到SaaS應用-架構分析(功能性、非功能性、關鍵約束)-上篇》《HRMS(人力資源管理系統)-從單機應用到SaaS應用-架構分析(功能性、非功能性、關鍵約束)-下篇》內容來展開說明。 本篇... ...
  • 零、 題記 在高併發場景下,需要通過緩存來減少資料庫的壓力,使得大量的訪問進來能夠命中緩存,只有少量的需要到資料庫層。由於緩存基於記憶體,可支持的併發量遠遠大於基於硬碟的資料庫。所以對於高併發設計,緩存的設計是必不可少的一環。一、為什麼要使用緩存 為什麼要使用緩存呢?源於人類的一個夢想,就是多快好省的 ...
  • 本文長度為3426字,預計讀完需1.2MB流量,建議閱讀9分鐘。 閱讀目錄 「負載均衡」是什麼? 常用「負載均衡」策略圖解 常用「負載均衡」策略優缺點和適用場景 用「健康探測」來保障高可用 結語 「負載均衡」是什麼? 常用「負載均衡」策略圖解 常用「負載均衡」策略優缺點和適用場景 用「健康探測」來保 ...
  • Kafka 應對場景:消息持久化、吞吐量是第一要求、狀態由客戶端維護、必須是分散式的。Kafka 認為 broker 不應該阻塞生產者,高效的磁碟順序讀寫能夠和網路 IO 一樣快,同時依賴現代 OS 文件系統特性,寫入持久化文件時並不調用 flush,僅寫入 OS pagecache,後續由 OS ...
  • 題意 "題目鏈接" Sol 比較套路的一個題。 第一問二分答案check一下 第二問設$f[i][j]$表示前$i$個數,切了$j$段的方案數,單調隊列優化一下。 轉移的時候只需要保證當前段的長度小於最大限度即可。 cpp include using namespace std; const int ...
  • Mybatis Mybatis的介紹 1. Mybatis是持久層層框架,是半ORM(對象關係映射)框架. 2. 使用Mybatis有兩類配置文件 核心配置文件: mybatis Config.xml 映射配置文件: 與介面相對應的xml文件 3. 核心的API: SqlSessionFactory ...
  • 網路編程 bind函數 bind的作用是確定埠號。 正常處理都是先bind,然後listen 如果不bind,直接listen,會是什麼結果? 內核會自動隨機分配一個埠號 例子: c++ include include include include include include void p ...
  • 題意 "題目鏈接" Sol 挺顯然的樹形背包吧。。 $f[i][j]$表示$i$這棵子樹中答案為$j$的最大價值,轉移的時候背包一下。。 第一次寫樹形背包,犯了兩個錯誤 1. 枚舉根節點的貢獻時需要倒著枚舉 2. 轉移時需要註意$k = 0$的情況,不要出現重覆轉移 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...