以下是總結的一些常見字元編碼的介紹:
編碼型別
位元組數年代
編碼原理
字符集缺點
備註ascii
11967
從0~127來表示所有英文本元和一些符號
其中0x20以下的位元組狀態稱為「控制碼」(例如換行)
英文文字、符號及控制碼
只包含128個字元
是最早的字元編碼
由美國國家標準學會(ansi)制定
gb231212
1980
乙個小於127的字元的意義與原來相同
但兩個大於127的字元連在一起時,就表示乙個漢字
6763常用漢字、數學符號、羅馬字元、ascii所有字元(半形字元)、ascii中所有字元重新編碼後佔2個位元組的字元(全形字符)等
不包含繁體字
gb2312 是對 ascii 的中文擴充套件
英文只佔1個位元組,中文佔2個位元組
big-5
21984
雙位元組編碼,高位元組編碼範圍是0x81-0xfe,低位元組編碼範圍是0x40-0x7e和0xa1-0xfe。
0x8140-0xa0fe是保留區域,用於使用者造字區。
13053個中文字、408個字元以及33個控制
只包括繁體漢字,不包括簡體漢字,一些生僻的漢字也沒有收錄
通行於台灣、香港地區的乙個繁體字編碼方案。
是我國早期中文電腦的業界標準,也是中文社群最常用的電子漢字字集標準
unicode
21994
鑑於1個位元組無法表示所有的字元,於是擴充套件到2個位元組,最多可表示6萬多個字元
ascii中的所有字元維持不變,將長度由8位增加到16位,高位補0
其他語言的字元全部重新統一編碼
全球統一字元標準
ascii中字元的高8位永遠是0,儲存空間比ascii大一倍
所有字元都用2個位元組表示
utf-8
1-4可變
1992
對不同範圍的字元使用不同長度的編碼:
1. 單位元組的字元,位元組的第一位設為0,對於英語文字,utf-8碼只占用乙個位元組,和ascii碼完全相同;
2. n個位元組的字元(n>1),第乙個位元組的前n位設為1,第n+1位設為0,後面位元組的前兩位都設為10,這n個位元組的其餘空位填充該字元unicode碼,高位用0補足。
一種針對unicode的可變長度字元編碼,又稱「萬國碼」。
utf-8就是每次1個位元組(8個位)傳輸資料
中文漢字所佔位元組數較大
常用中文字元用utf-8編碼占用3個位元組(大約2萬多字)
但超大字符集中的更大多數漢字要佔4個位元組(在unicode編碼體系中,u+20000開始有5萬多漢字)
gbk1
21995
在gb2312的基礎上,不再要求低位元組大於127
只要第乙個位元組是大於127就固定表示這是乙個漢字的開始
gbk包括了gb2312的所有內容,同時又增加了近20000個新的漢字(包括繁體字)和符號
收錄了所有unicode 1.1及gb 13000.1-93之中的漢字
未包含少數民族的字元
英文只佔1個位元組,中文佔2個位元組
根據西方資料,gbk最初是由微軟對gb2312的擴充套件,並用在win95上
gb1803012
42000
2005
gbk基礎上增加了cjk統一漢字擴充a的漢字
包含了gbk的所有內容,同時增加了幾千個少數民族的字元
其中4位元組部分收錄了雙位元組字元之外的包括cjk統一漢字擴充a在內的gb13000.1 中的全部字元。
英文只佔1個位元組,中文佔2個位元組
由於utf-8中文字元所占用的空間為3個及以上的字元,這也是為什麼在網際網路如此發達的今天,utf-8幾乎成為業內標準,gb2312、gbk等編碼方式在國內仍然被廣泛使用的原因
字元編碼 unicode編碼
1.ascii american standard code for information interchange 美國資訊交換標準 這是計算機上最早使用的通用的編碼方案。那個時候計算機還只是拉丁文本的專利,根本沒有想到現在計算機的發展勢頭,如果想到了,可能一開始就會使用unicode了。當時絕大...
A 字元編碼
請將一串長度為5的純字母文字譯成乙個密碼,密碼規律如下 用原來的字母後面的第4個字母代替原來的字母。如c用g代替 文字中不存在w w x x y y z z等字母 最後得到的文字即為密碼。輸入一串文字,長度固定為5。輸出對應的密碼。格式為 password is 密碼 input chinaoutp...
字元編碼 字元編碼的奧秘
字元編碼相信是每個程式設計師的噩夢,只要是有中文的地方,總是會遇到各種編碼的問題,並且這種問題還非常難纏,尤其在linux上,因為上面很多軟體都是針對 英語國家開發的,是不會考慮其他語種編碼問題。在遇到編碼的無數大坑之後,我決定仔細研究下編碼問題,因為這就像一道坎一直橫在你面前,每次到這裡你都會 跌...