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