首页
/
每日頭條
/
科技
/
空字符對應的unicode編碼
空字符對應的unicode編碼
更新时间:2024-08-24 11:19:58
ASCII碼

在較早的計算時代,ASCII 代碼用于表示字符。英語隻有 26 個字母和一些其他特殊字符和符号。

下表是 ASCII 碼對照表,包含字符及其相應的十進制和十六進制值。

空字符對應的unicode編碼(Unicode字符集和UTF-8)1

ASCII 碼對照表

從上表可以推斷出,ASCII 值可以在十進制數系統中表示為 0 到 127。讓我們看看 0 和 127 在 8 位字節中的二進制表示。

0 表示為

空字符對應的unicode編碼(Unicode字符集和UTF-8)2

0 的二進制表示

127表示為

空字符對應的unicode編碼(Unicode字符集和UTF-8)3

127 二進制表示

從上面的二進制表示可以推斷,十進制值 0 到 127 可以使用 7 位來表示,而第 8 位是空閑的。

警告 從這個地方起,混亂開始了。

人們想出了不同的方法來使用剩餘的第八位,從而使其可以表示從 128 到 255 的十進制值。那麼沖突就發生了。例如,越南人使用十進制值 182 來表示越南字母 ờ,而印度人使用相同的值 182 來表示印地語字母घ。因此,如果印度人寫的電子郵件包含字母घ并且它被越南人閱讀,那麼将會顯示為ờ。顯然這不是預期的效果。

那麼如何解決這個問題呢,接下來就該 unicode 出場了。


Unicode 和代碼點

Unicode 字符集将世界上的每個字符都映射到一個唯一的數字上。這确保了不同語言的字母之間沒有沖突。這些數字與平台無關。

這些唯一的數字在 unicode 術語中稱為代碼點。

讓我們看看它們是如何被引用的。

使用代碼點引用 拉丁字符ṍ

U 1E4D

U 表示 unicode,1E4D是分配給字符 ṍ 的十六進制值。

英文字母A表示為 U 0041

好了,了解了這些,接下來該是重頭戲了


UTF-8 編碼

現在我們知道什麼是 unicode 以及如何将世界上的每個字母分配給一個唯一的代碼點,我們需要一種在計算機内存中表示這些代碼點的方法。這就是字符編碼登場的地方。 其中最為人們所熟知的就是 UTF-8 編碼。

UTF-8 編碼是一種大小可變的編碼方案,用于表示内存中的 unicode 代碼點。大小可變編碼意味着代碼點根據其大小使用 1、2、3 或 4 個字節表示。

UTF-8 1 字節編碼

1個字節編碼的标識是第一個比特位為0。

空字符對應的unicode編碼(Unicode字符集和UTF-8)4

UTF8 1字節編碼表示方式

英文字母A的 unicode 代碼點為 U 0041。它的二進制表示是1000001。

A 以 UTF-8 編碼表示為

01000001

紅色的0位表示使用1字節編碼,其餘位代表碼位

UTF-8 2 字節編碼

代碼點為 U 00F1 的拉丁字母ñ的二進制值11110001。該值大于可以使用 1 字節編碼格式表示的最大值,因此該字母表将使用 UTF-8 2 字節編碼表示。

2 字節編碼的方式是由第一個字節比特位中的高三位的比特序列110和第二個字節比特位中的高二位的比特序列10來标識。

空字符對應的unicode編碼(Unicode字符集和UTF-8)5

UTF8 2字節編碼方式表示

Unicode 代碼點U 00F1的二進制值是1111 0001。用2字節編碼格式填充這些位,我們得到如下所示的ñ的UTF-8 2字節編碼表示。

填充是從映射到第二個字節的最低有效位的代碼點的最低有效位開始完成的。

1100001110110001

藍色的二進制數字11110001代表碼位U 00F1的二進制值,紅色的是2字節編碼标識符。黑色零用于填充字節中的空位。

UTF-8 3 字節編碼

具有代碼點U 1E4D的拉丁字符ṍ使用 3 字節編碼表示,因為它大于使用 2 字節編碼可以表示的最大值。

3 字節編碼通過第一個字節中的位序列1110 和第二個和第三個字節中的 10的存在來标識。

空字符對應的unicode編碼(Unicode字符集和UTF-8)6

UTF8 3字節編碼表示

ṍ 十六進制代碼點 0x1E4D,對應的二進制值為1111001001101。将這些位填充到上述編碼格式中,我們得到了下面所示的 ṍ 的UTF-8 3 字節編碼表示。

填充是從映射到第三個字節的最低有效位的代碼點的最低有效位開始進行的。

111000011011100110001101

紅色位表示 3 字節編碼,黑色位是填充位,藍色位表示代碼點。

UTF-8 4 字節編碼

表情符号的Unicode代碼點U 1F62D。這大于可以使用 3 字節編碼表示的最大值,因此将使用 4 字節編碼表示。

4 字節編碼通過第一個字節中的11110和随後的第二個、第三個和第四個字節中的10來标識。

空字符對應的unicode編碼(Unicode字符集和UTF-8)7

UTF8 4字節編碼表示

U 1F62D的二進制表示是11111011000101101。将這些位填入上述編碼格式,我們就得到了的UTF-8 4字節編碼。代碼點的最低有效位映射到第四個字節的最低有效位,依此類推。

11110000100111111001100010101101

紅色位标識4字節編碼格式,藍色位是實際碼位,黑色位是填充位。

上面我們分别對 UTF-8 的幾種編碼方式進行了詳細的介紹。接下來我們順帶介紹一下 UTF-16 和 UTF-32 編碼方式


UTF-16 編碼

UTF-16 編碼是一種可變字節編碼方案,它使用 2 個字節或 4 個字節來表示 unicode 代碼點。所有現代語言的大多數字符都使用 2 個字節表示。

拉丁字母ñ的Unicode代碼點為 U 00F1 二進制表示為 11110001 。其 UTF-16 編碼表示為

0000000011110001

上面的表示是在 Big Endian 字節順序模式下(最高有效位在前)。


UTF-32 編碼

UTF-32 編碼是一種固定字節編碼方案,它使用 4 個字節來表示所有代碼點。

英文字母 A 具有 Unicode 代碼點 U 0041。它的二進制表示是 1000001

它以UTF-32編碼表示,如下所示,

00000000 00000000 00000000 01000001

藍色位是代碼點的二進制表示。上面的表示是在 Big Endian 字節順序模式下。

以上就是關于字符集和字符編碼的所有内容。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
原創文章的如何轉發
原創文章的如何轉發
#自媒體寫作經驗分享#我這也是才發現這個問題,還是我的朋友跟我交流的,我感覺挺有用的就分享給各位友友吧。就是别人把他已經發過的原創文章或者視頻删除掉了,然後我的朋友就說不如給我,我稍微改一下發表吧,結果就出現了下面這種這情況,取消視頻原創...
2024-08-24
2021筆記本電腦市場占有率
2021筆記本電腦市場占有率
2022年9月,根據尚普咨詢最新發布的《筆記本電腦品牌市場調查報告》和同時公布的筆記本電腦十大暢銷品牌榜單顯示,聯想、ThinkPad、華為是本月排名TOP3的最強品牌。9月,在筆記本電腦十大暢銷品牌榜上,聯想繼續蟬聯第一。ThinkPad...
2024-08-24
oppor15目前性能怎麼樣
oppor15目前性能怎麼樣
OPPOR15的價格終于公布了,這次OPPO非常聰明,選擇了一種比較有吸引力的配置方案,我們今天就來好好分析一下。另外一個差異比較大的地方就是攝像頭了。标準版的後攝像頭采用的是1600萬500萬像素的雙攝方案,顯然是有縮水,這應該也是銷售層...
2024-08-24
morphvox音量條沒有聲音
morphvox音量條沒有聲音
morphvox音量條沒有聲音?MorphVOXPro是ScreamingBee旗下的電腦版變聲器,全面支持各類在線語音,遊戲,微信,YY,QQ,Skype,鬥魚直播,手機通話等男變女萌妹子/女神/禦姐等接近完美女聲的軟件,今天小編就來聊一...
2024-08-24
話費積分兌換禮品騙局
話費積分兌換禮品騙局
說你的手機号碼積分馬上就要到期了,讓你去兌換獎品,如果有的話,我告訴各位啊,你一定要小心了,這是一種新型騙局,專門來裝運營商騙人的。青島的李先生啊,就收到了這樣的一條短信,說自己的手機上有多少多少積分,馬上就要過期了,你趕緊去兌換一台空氣炸...
2024-08-24
Copyright 2023-2024 - www.tftnews.com All Rights Reserved