常用字符集的總結

2021-06-29 08:10:37 字數 1137 閱讀 3590

ascii編碼:主要包括26字母,數字符號,和一些常用符號,用乙個位元組足夠(1個位元組可以表示2^8=256種字元)實際上,這些字元只使用了1個位元組的7位。其中0-127最高位是0,另外128個擴充套件的ascii碼,最高位都是1。它是最通用的單位元組編碼系統。

iso8859-1:通常叫做latin-1,其中0-127的字元與ascii碼相同。iso 8859另外定義了14個適用於不同文字的字符集(8859-2到8859-15)。這些字符集共享0-127的asii碼,只是每個字符集都包含了128-255的其他字元。

gb2312和gbk:gb2312簡稱國標碼,採用兩個位元組來表示乙個字元,分別稱為高位和低位,中文字元的每乙個位元組的最高位都用1表示,其編碼範圍是高位0xa1-0xfe,低位也是0xa1-0xfe,漢字從0xb0a1開始,結束於0xf7fe。gbk完全相容gb2312,它不是國家標準而只是規範,gbk包含了20902個漢字,其編碼範圍是0x8140-0xfefe。

unicode(統一的字元編碼標準集):為了統一全世界的字元編碼,使用0~65535的雙位元組無符號數對每乙個字元進行編碼。unicode中0~255的字元與iso8859-1中的一致。unicode編碼對於英文本元採取前面加「0」位元組的策略實現等長相容。

utf-8:為了減少使用unicode編碼造成的儲存過量,使用utf-8,對於常用字元,即0-127的ascii字元,utf-8用乙個位元組表示,如果字元對應的unicode碼是0x0000,或在0x0080與0x007f之間,utf-8用兩個位元組表示,如果字元對應的unicode碼在0x0800與0xffff之間,utf-8用三個位元組表示。

unicode與utf-8轉換規則如下:

(1) 如果unicode編碼的16位二進位制數的前9位是0,則utf-8編碼用1個位元組來表示,這個位元組的首位是「0」,剩下的與原二進位制資料的後7位相同。

(2) 如果unicode編碼的16位二進位制數的頭5位是0,則utf-8編碼用2個位元組表示,首位元組以「110」開頭,後面的5位與原二進位制資料除去前5個零後的最高5位相同;第二個位元組以「10」開頭,後面的6位與原二進位制資料中的低6位相同。

(3) 如果不符合上述兩個規則,則用三個位元組表示。第乙個位元組以「1110」開頭,後四位為原二進位制資料的高四位,第二個位元組以「10」開頭,後6位為原二進位制資料中間的6位,第三個位元組以「10」開頭,後六位為原二進位制資料的低六位。

正則常用字符集簡寫

由於有些字符集很常用,所以正規表示式本身就提供了對這類字符集的簡寫 如上圖所示,s s d d w w這六個字符集在平時是很常用的,左邊兩邊的正則,一般情況下,表示的含義是一樣的,也就是等價的。也許你已經發現了,s和 s只是字母大小寫的區別,代表的字符集就變成相反的了。s和 s是沒有交集的,但它們是...

常用字符集編碼格式詳解

ascii ascii碼是7位編碼,編碼範圍是0x00 0x7f。ascii字符集包括英文本母 阿拉伯數字和標點符號等字元。其中0x00 0x20和0x7f共33個控制字元。只支援ascii碼的系統會忽略每個位元組的最高位,只認為低7位是有效位。hz字元編碼就是早期為了在只支援7位ascii系統中傳...

POSIX常用字元集合

在正則匹配的時候,有的時候需要匹配一些特殊字元,比如說空格,tab,標點符號,控制字元,大小寫字碼,16進製制等.如果純粹是大小寫字元的話,a z 可以匹配大寫字母 a z 可以匹配小寫字母 0 9 這些可以匹配數字 但像tab鍵,空格鍵,空白符,16進製制字母等,就不太好匹配!好在posix有個固...