日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

图解编码基础

發(fā)布時(shí)間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图解编码基础 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

遠(yuǎn)古時(shí)代:ascii

A long time ago,米國(guó)童鞋想打字了,于是就有了ascii碼。

ascii碼的一個(gè)字是8(一個(gè)字節(jié),8個(gè)二進(jìn)制),但是只用后7(0-127),

英語(yǔ)中一般的字符以及數(shù)字、字母;剩下最高位1比特被用作一些通訊系統(tǒng)的奇偶校驗(yàn)。

輸出下ascii

for (byte i = 0; i <= 127; i++)

{

??? Console.Write("{0}-0x{0:x}:{1}{2}", i, (char)i, (i + 1) % 4 == 0 ? "\n" : " ");

}

注意:0x0nul,代表結(jié)束標(biāo)志'\0'。(修改:之前這里寫(xiě)的是NULL,多謝peerben童鞋的指出。)

?

可怕的事情發(fā)生了:OEM字符集的衍生

米國(guó)童鞋憤怒了:“我受夠了每天都只能打這128個(gè)字符!不!是127個(gè),第一個(gè)什么也不是。啊。。。你妹啊!”。

so!一些不乖的童鞋開(kāi)始打歪主意了!

一個(gè)字節(jié)能夠表示的數(shù)字(編號(hào))有256個(gè),而ASCII字符只用到了0x00~0x7F,也就是占用了前128個(gè),后面128個(gè)數(shù)字不用白不用!

這些童鞋各自有各自的想法,這就導(dǎo)致了當(dāng)時(shí)銷(xiāo)往世界各地的機(jī)器上出現(xiàn)了大量各式各樣的OEM字符集。

?

東方國(guó)度也開(kāi)始用電腦啦:多字節(jié)字符集(MBCS)和中文字符集

時(shí)代在進(jìn)步,東方的國(guó)度也開(kāi)始用電腦了。

對(duì)于歐美國(guó)家的童鞋來(lái)說(shuō),也許ascii足夠了,但是對(duì)于東方國(guó)度,這256個(gè)字符遠(yuǎn)遠(yuǎn)不夠的。

但是東方的人民是無(wú)敵的!很快變發(fā)明了多字節(jié)編碼方式。例如中國(guó)使用的就是雙字節(jié)字符集編碼。

?

繼續(xù)進(jìn)步!中國(guó)的漢字

中國(guó)童鞋們的漢字系統(tǒng)是博大精深,數(shù)量也是比26個(gè)字母多了不知道多少倍,但是一切困難在中國(guó)童鞋面前都是紙老虎!是紙老虎!

?

?

GB2312

用于簡(jiǎn)體中文,一共收錄了7445個(gè)字符,包括6763個(gè)漢字和682個(gè)其它符號(hào)。漢字區(qū)的內(nèi)碼范圍高字節(jié)從B0-F7,低字節(jié)從A1-FE,占用的碼位是72*94=6768。其中有5個(gè)空位是D7FA-D7FE

?

繁體古文怎么辦?big5

用于繁體中文,

?

56個(gè)民族是一家!GBK1.0GB18030

GB2312支持的漢字太少。1995年的漢字?jǐn)U展規(guī)范GBK1.0收錄了21886個(gè)符號(hào),它分為漢字區(qū)和圖形符號(hào)區(qū)。漢字區(qū)包括21003個(gè)字符。

2000年的GB18030是取代GBK1.0的正式國(guó)家標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)收錄了27484個(gè)漢字,同時(shí)還收錄了藏文、蒙文、維吾爾文等主要的少數(shù)民族文字。從漢字字匯上說(shuō),GB18030GB13000.120902個(gè)漢字的基礎(chǔ)上增加了CJK擴(kuò)展A6582個(gè)漢字(Unicode0x3400-0x4db5),一共收錄了27484個(gè)漢字。

?

混亂的終結(jié)!Unicode

太多太多的編碼了,慢慢的,全世界的童鞋們發(fā)現(xiàn)沒(méi)有個(gè)統(tǒng)一的標(biāo)準(zhǔn)是沒(méi)法發(fā)展進(jìn)步的,

so!終結(jié)者Unicode出現(xiàn)了。

ISO組織的童鞋們對(duì)全球混亂的編碼標(biāo)準(zhǔn)已經(jīng)忍無(wú)可忍了,所以他們廢了所有的地區(qū)性編碼方案,重新搞一個(gè)包括了地球上所有文化、所有字母和符號(hào)的編碼!他們打算叫它"Universal Multiple-Octet Coded Character Set",簡(jiǎn)稱(chēng) UCS, 俗稱(chēng) "UNICODE"

Unicode2個(gè)字節(jié)的,簡(jiǎn)稱(chēng)為UCS。現(xiàn)在用的是UCS-2,即2個(gè)字節(jié)編碼。2個(gè)字節(jié)最多能夠表示65536個(gè)編碼。

這樣太少,所以出現(xiàn)了UCS-4, 4個(gè)字節(jié)編碼,由原先的65536個(gè)編碼擴(kuò)展至將近100萬(wàn)編碼。

?

UTF8UTF16UTF32

UTF,即Unicode Transformer Format,是Unicode代碼點(diǎn)(code point)的實(shí)際表示方式,按其基本長(zhǎng)度所用位數(shù)分為UTF-8/16/32。它也可以認(rèn)為是一種特殊的外部數(shù)據(jù)編碼,但能夠與Unicode代碼點(diǎn)做一一對(duì)應(yīng)。

?

UTF-8是變長(zhǎng)編碼,每個(gè)Unicode代碼點(diǎn)按照不同范圍,可以有1-3字節(jié)的不同長(zhǎng)度。

//UTF-8是壓縮的Unicode編碼方式.

?

UTF-16長(zhǎng)度相對(duì)固定,只要不處理大于\U200000范圍的字符,每個(gè)Unicode代碼點(diǎn)使用16位即2字節(jié)表示,超出部分使用兩個(gè)UTF-164字節(jié)表示。按照高低位字節(jié)順序,又分為UTF-16BE/UTF-16LE

?

UTF-32長(zhǎng)度始終固定,每個(gè)Unicode代碼點(diǎn)使用32位即4字節(jié)表示。按照高低位字節(jié)順序,又分為UTF-32BE/UTF-32LE

轉(zhuǎn)載于:https://www.cnblogs.com/hailan2012/archive/2012/01/12/2320937.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的图解编码基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。