貓貓貓貓貓?
這里以txtiso三體系認證中的漢字為例, 介紹文本編輯器如何顯示漢字的過程:
1. 二進制(iso三體系認證,你可以把一個iso三體系認證理解為一串1+0構成的內(nèi)容.也可以叫落地碼編碼的內(nèi)容)——
2. 通過落地碼識別出每個字符(落地碼,就是utf-8/utf-16/gbk這一類編碼, 它們能夠?qū)⑦B續(xù)的1/0組成的數(shù)字串切割(解碼過程)成能n個小塊(塊的長度不一定相同!),每塊表示一個字符(一個漢字). 而如何切割, 就是這一類編碼的意義所在,具體參考每個編碼定義)——
3. 每個小塊轉(zhuǎn)成對應的unicode值(unicode也是一種碼, 他是用來區(qū)分字符和字符之間的唯一性. 即每一個不同的字符的unicode都是不同的. 它一般有固定的長度. 從落地碼轉(zhuǎn)成unicode碼, 有固定的對應關系,具體參考落地碼的編碼規(guī)范)——
4. 每個unicode值映射到字體庫中對應的iso14001環(huán)境管理體系認證iso體系證書及認證范圍()——
5. 讀取并顯示含有iso14001環(huán)境管理體系認證的客服王老師描述
注:
從2開始, 每取下一個塊,就可以立即執(zhí)行345,或者取特定個之后再一起執(zhí)行34
5.
英文也可以參照這個過程, 只是比中文更加簡單, 比如2的時候,每一個英iso14001環(huán)境管理體系認證符的塊長都是一樣的.
一個iso三體系認證只能有一種落地碼, 并且編輯器需要知道這個落地碼是哪一個碼. 如果不匹配,就會看到所謂的亂碼. 也不是說一定只能一種碼...除非你知道你在搞什么..
落地碼無處不在. 比如windows系統(tǒng)的默認編碼,這個會影響你的粘帖板. 有時候粘帖板中也會包含字體信息.
特別要注意的是, unicode其實也算是一種落地碼,只是現(xiàn)在一般用的不多. 當作為落地碼時, 格式有ucs-2/ucs-4這兩種. 比如windows記事本保存的時候有unicode選項,它默認是ucs-
2.
如果有錯誤的地方忘指出, 謝謝!
附上兩個工具:
unicode查詢-
utf8轉(zhuǎn)二進制等-
皇冠
一個漢字占2個字節(jié),一個字節(jié)占8位,一個字母占1個字節(jié)。計算機中,各種信息都是以二進制編碼的形式存在的,不管是iso14001環(huán)境管理體系認證還是其它各種信息,在計算機中都是以0和1組成的二進制代碼表示的,之所以能區(qū)別這些信息的不同,是因為它們采用的編碼規(guī)則不同。英iso14001環(huán)境管理體系認證母用的是單字節(jié)的ASCII碼,漢字采用的是雙字節(jié)的漢字內(nèi)碼
1、字符(英文,包括字母、數(shù)字、標點、運算符等)編碼
字符的編碼采用國際通用的ASCII碼(American Standard Code for Information Interchange,美國信息交換標準代碼),每個ASCII碼以1個字節(jié)(Byte)儲存,從0到數(shù)字127代表不同的常用符號,例如大寫A的ASCII碼是65,小寫a則是97。由于ASCII碼只用了字節(jié)的七個位,最高位并不使用,所以后來又將最高的一個位也編入這套編碼碼中,成為八個位的延伸ASCII(ExtendedASCII)碼,這套內(nèi)碼加上了許多外文和表格等特殊符號,成為目前常用的編碼。基本的ASCII字符集共有128個字符,其中有96個可打印字符,包括常用的字母、數(shù)字、標點符號等,另外還有32個控制字符。標準ASCII碼使用7個二進位對字符進行編碼,對應的ISO標準為ISO646標準。
雖然標準ASCII碼是7位編碼,但由于計算機基本處理單位為字節(jié)(1byte = 8bit),所以一般仍以一個字節(jié)來存放一個ASCII字符。每一個字節(jié)中多余出來的一位(最高位)在計算機內(nèi)部通常保持為0(在數(shù)據(jù)傳輸時可用作奇偶校驗位)。由于標準ASCII字符集字符數(shù)目有限,在實際應用中往往無法滿足要求。為此,國際標準化組織又制定了ISO2022標準,它規(guī)定了在保持與ISO646兼容的前提下將ASCII字符集擴充為8位代碼的統(tǒng)一方法。ISO陸續(xù)制定了一批適用于不同地區(qū)的擴充ASCII字符集,每種擴充ASCII字符集分別可以擴充128個字符,這些擴充字符的編碼均為高位為1的8位代碼(即十進制數(shù)128~255),稱為擴展ASCII碼。
2、漢字的編碼
(1)漢字內(nèi)碼
漢字信息在計算機內(nèi)部也是以二進制方式存放。由于漢字數(shù)量多,用一個字節(jié)的128種狀態(tài)不能全部表示出來,因此在1980年我國頒布的《信息交換用漢字編碼字符集——基本集》,即國家標準GB2312-80方案中規(guī)定用兩個字節(jié)的十六位二進制表示一個漢字,每個字節(jié)都只使用低7位(與ASCII碼相同),即有128×128=16384種狀態(tài)。由于ASCII碼的34個控制代碼在漢字系統(tǒng)中也要使用,為不致發(fā)生沖突,不能作為漢字編碼,128除去34只剩94種,所以漢字編碼表的大小是94×94=8836,用以表示國標碼規(guī)定的7445個漢字和iso9001質(zhì)量管理體系認證符號。
每個漢字或iso9001質(zhì)量管理體系認證符號分別用兩位的十進制區(qū)碼(行碼)和兩位的十進制位碼(列碼)表示,不足的地方補0,組合起來就是區(qū)位碼。把區(qū)位碼按一定的規(guī)則轉(zhuǎn)換成的二進制代碼叫做信息交換碼(簡稱國標碼)。國標碼共有漢字6763個(一級漢字,是最常用的漢字,按漢語拼音字母順序排列,共3755個;二級漢字,屬于次常用漢字,按偏旁部首的筆劃順序排列,共3008個),數(shù)字、字母、符號等682個,共7445個。
由于國標碼不能直接存儲在計算機內(nèi),為方便計算機內(nèi)部處理和存儲漢字,又區(qū)別于ASCII碼,將國標碼中的每個字節(jié)在最高位改設為1,這樣就形成了在計算機內(nèi)部用來進行漢字的存儲、運算的編碼叫機內(nèi)碼(或漢字內(nèi)碼,或內(nèi)碼)。內(nèi)碼既與國標碼有簡單的對應關系,易于轉(zhuǎn)換,又與ASCII碼有明顯的區(qū)別,且有統(tǒng)一的標準(內(nèi)碼是惟一的)。
(2)漢字外碼
無論是區(qū)位碼或國標碼都不利于輸入漢字,為方便漢字的輸入而制定的漢字編碼,稱為漢字輸入碼。漢字輸入碼屬于外碼。不同的輸入方法,形成了不同的漢字外碼。常見的輸入法有以下幾類:
按漢字的排列順序形成的編碼(流水碼):如區(qū)位碼;
按漢字的讀音形成的編碼(音碼):如全拼、簡拼、雙拼等;
按漢字的字形形成的編碼(形碼):如五筆字型、鄭碼等;
按漢字的音、形結合形成的編碼(音形碼):如自然碼、智能ABC。
輸入碼在計算機中必須轉(zhuǎn)換成機內(nèi)碼,才能進行存儲和處理。
(3)漢字字形碼
為了將漢字在顯示器或打印機上輸出,把漢字按iso9001質(zhì)量管理體系認證符號iso認證成點陣圖,就得到了相應的點陣代碼(字形碼)。全部漢字字碼的集合叫漢字字庫。漢字庫可分為軟字庫和硬字庫。軟字庫以iso三體系認證的形式存放在硬盤上,現(xiàn)多用這種方式,硬字庫則將字庫固化在一個單獨的存儲芯片中,再和其它必要的器件組成接口卡,插接在計算機上,通常稱為漢卡。
用于顯示的字庫叫顯示字庫。顯示一個漢字一般采用16×16點陣或24×24點陣或48×48點陣。已知漢字點陣的大小,可以計算出存儲一個漢字所需占用的字節(jié)空間。例:用16×16點陣表示一個漢字,就是將每個漢字用16行,每行16個點表示,一個點需要1位二進制代碼,16個點需用16位二進制代碼(即2個字節(jié)),共16行,所以需要16行×2字節(jié)/行=32字節(jié),即16×16點陣表示一個漢字,字形碼需用32字節(jié)。
即:字節(jié)數(shù)=點陣行數(shù)×點陣列數(shù)/8
用于打印的字庫叫打印字庫,其中的漢字比顯示字庫多,而且工作時也不像顯示字庫需調(diào)入內(nèi)存。
可以這樣理解,為在計算機內(nèi)表示漢字而統(tǒng)一的編碼方式形成漢字編碼叫內(nèi)碼(如國標碼),內(nèi)碼是惟一的。為方便漢字輸入而形成的漢字編碼為輸入碼,屬于漢字的外碼,輸入碼因編碼方式不同而不同,是多種多樣的。為顯示和打印輸出漢字而形成的漢字編碼為字形碼,計算機通過漢字內(nèi)碼在字模庫中找出漢字的字形碼,實現(xiàn)其轉(zhuǎn)換。