ASCII、Unicode和UTF-8編碼的區別

来源:https://www.cnblogs.com/xiaoyafei/archive/2018/04/25/8947069.html
-Advertisement-
Play Games

ASCII、Unicode和UTF 8編碼的區別 摘要總結: ASCII的編碼是128個字元 GB2312編碼用來把中文編進去的,日本把日文編進Shift_JIS里... Unicode是為瞭解決各國亂碼的,但浪費存儲空間 UTF 8編碼把一個Unicode字元根據不同的數字大小編碼成1 6位元組,英 ...


ASCII、Unicode和UTF-8編碼的區別

摘要總結:

ASCII的編碼是128個字元
GB2312編碼用來把中文編進去的,日本把日文編進Shift_JIS里...
Unicode是為瞭解決各國亂碼的,但浪費存儲空間
UTF-8編碼把一個Unicode字元根據不同的數字大小編碼成1-6位元組,英文字元是1個位元組,漢字通常是3個位元組,生僻字元是4-6個位元組

常用編碼介紹一覽表:

編碼 作用 所占位元組數
ASCII 表示英語及西歐語言 1bytes
GB2312 國家簡體中文字元集,相容ASCII 2bytes
Unicode 國家標準組織統一標準字元集 2bytes
GBK GB2312的擴展字元集,支持繁體字,相容GB2312 2bytes
UTF-8 不定長編碼 1-3bytes

具體解釋127個字母被編碼到電腦中,也就是大小寫英文字母、數字和一些符號,這個編碼表被成為ASCII編碼,比如大小字母A代表65,小寫字母a代表97。

但是要處理中文顯然一個位元組是不夠的,至少需要兩個位元組,而且還不能和ASCII編碼衝突,所以,中國制定了GB2312編碼,用來把中文編進去。

你可以想到的是,全世界有上百種語言,日本把日本編到Shift_JIS里,南韓把韓文編到Euc-kr里,各國有各國的標準,就不可避免的出現了衝突,結果就是:在多語混合的文本中,顯示出來會亂碼。

因此,Unicode應運而生,Unicode把所有語言都統一到一套編碼里,這樣就不會出現問題了。

Unicode標準也在不斷發展,但最常用的是用兩個位元組表示一個字元(如果要用到非常偏僻的字元,就需要4個位元組)。現代操作系統和大多數編程語言都直接支持Unicode。

新的問題又出現了:如果統一換成Unicode編碼,亂碼的問題就消失了,但是,如果寫的文章里都是英文的話,Unicode編碼比ASCII編碼需要多一倍的存儲空間,在存儲和傳輸上就不划算了。

所以,本著節約的精神,又出現了把Unicode編碼轉化為“可變長編碼”的UTF-8編碼。

UTF-8編碼把一個Unicode字元根據不同的數字大小編碼成1-6個位元組,常用的英文占用1個位元組,漢字通常是3個位元組,只有很生僻的字元才會被編碼成4-6個位元組。如果你要傳輸的文本包含大量英文字元,用UTF-8編碼就能節省空間。

UTF-8編碼有一個額外的好處,就是ASCII編碼實際上可以被看成是UTF-8編碼的一部分,所以大量只支持ASCII編碼的歷史遺留軟體可以在UTF-8編碼下繼續工作。


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

-Advertisement-
Play Games
更多相關文章
  • var httpFormData = filterContext.HttpContext.Request.Form; var logContent = string.Empty; //獲取url的 logContent = filterContext.HttpContext.Request.... ...
  • 1.創建 HttpCookies Cookie=new HttpCookies("CookieName");2.添加內容 Cookie.Values.Add("UserName","ABC"); Cookie["UserName"]="ABC";3.修改內容 Cookie.Values["UserN ...
  • Json反序列化有兩種方式【本人】,一種是生成實體的,方便處理大量數據,複雜度稍高,一種是用匿名類寫,方便讀取數據,較為簡單。 使用了Newtonsoft.Json,可以自行在nuget中導入 Json源數據: 第一種:是用匿名方法生成,按照Json的格式,從外到內,一步一步寫,非數組用new{}, ...
  • 1.安裝Active Directory 架構,下載:adminpak.msi安裝。 2.以管理員運行cmd,執行:regsvr32 schmmgmt.dll(該命令將在電腦上註冊“schmmgmt.dll”) 3.開始,運行輸入:mmc /a,然後單擊確認,打開MMC控制台 4.在MMC【文件】 ...
  • 系統:centos7 LNMP(centos7, nginx, mysql, python3) 雲服務:騰訊雲 1、python3安裝 如果選擇公共鏡像安裝的話,centos內置python2,是不會安裝python3的,因此需要我們自己安裝python3。 第一步: 下載最新的python3安裝包 ...
  • 轉自:https://blog.csdn.net/valage/article/details/73332147 圖片中可以看到掛載點“/”的利用率移到100%,空間不夠,所以要對其進行分區。 1. 先進入虛擬機設置里增大磁碟空間 註意:將25改成50,以擴大空間。這裡一定要寫比25大的數,因為他是 ...
  • 1. 安裝環境 本文使用三台CentOS6.4虛擬機模擬完全分散式環境。前五個過程和hadoop1.x安裝相同 1.1. 安裝環境 1.2. 集群環境 集群包含三個節點:1個namenode、2個datanode 在我們的測試機上,我們使用三台虛擬機來模擬linux。我們下文中稱之為tiny01、t ...
  • 一、硬碟介面類型 硬碟的介面主要有IDE、SATA、SCSI 、SAS和光纖通道等五種類型。其中IDE和SATA介面硬碟多用於家用產品中,也有部分應用於伺服器,SATA是一種新生的硬碟介面類型,已經取代了大部分IDE介面應用。SCSI 、SAS主要應用於伺服器上,普通家用設備一般不支持SCSI和SA ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...