字符集,代碼頁,字符編碼

字符集:是一個系統支持的所有抽象字符的集合。字符是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等。其中每個字符都有一個序號作爲編碼值。

代碼頁:是字符集的別名。凡是涉及到字符處理的地方都要用到字符集,比如不同地區,不同語言的windows的系統代碼頁也就不同,中文windows系統下的代碼頁就是gbk字符集 cp936。cmd控制檯也具有代碼頁屬性,可以通過chcp命令更改當前這個控制檯窗口的活動代碼頁。

編碼:將字符編碼爲它所對應的字符編碼值,如將文字寫入文件
解碼:將字符編碼值解碼爲相應的字符,如從文件中讀取文字

標準ascii碼:使用7 位二進制數來表示所有的大寫和小寫字母,數字0 到9、標點符號, 以及在美式英語中使用的特殊控制字符,編碼範圍:0-0x7F

latin1:是對ASCII的擴展,收錄的字符除ASCII收錄的字符外,還包括西歐語言、希臘語、泰語、阿拉伯語、希伯來語對應的文字符號。編碼範圍:0-0xFF

gb2312:通行於中國大陸,新加坡等地的一套適用漢字的編碼,兼容ASCII.

gbk:對gb2312的擴容,兼容gb2312,英文使用單字節編碼,完全兼容ASCII字符編碼,中文部分採用雙字節編碼

Unicode編碼字符集只是統一定義了所有字符和它對應Unicode編碼值,但因爲Unicode包含的字符太多了,最大的編碼值要用4個字節才能存儲,所以衍生出了不同的編碼方案。

  • utf-8:是一種變長的編碼方案,用 1~4個字節來編碼一個字符

  • utf-16:一般採用2個字節來編碼一個字符,而對於輔助平面的字符采用兩個2字節來存儲。一般別人說這個文件採用Unicode編碼什麼什麼的,就是說utf-16編碼。

  • utf-32:由於採用32個字節編碼,所以直接用Unicode編碼值作爲編碼

windows記事本下的編碼方式:

  • ASCII:指的是對應當前系統 locale 的遺留(legacy)編碼,比如你的是英文版本的windows系統,那就是ASCII編碼,中文版本的windows系統就是gbk編碼…
  • Unicode:帶BOM的小端utf-16
  • utf-8:帶BOM的utf-8

在不同編碼的文本文件中或從網頁中複製黏貼文字時,是不用當心亂碼的問題的。每個應用程序都可以決定它在剪貼板上的內容。通常,一個Windows應用程序知道它在做什麼會在剪貼板上放置一些不同的表示。當您粘貼到其他應用程序時,該應用程序將尋找最適合其需求的表示。

需注意的是:用戶輸入文字後在文本編輯器上顯示的文本的編碼是與文本文件的編碼是無關的,文本文件的編碼是由保存時選擇什麼樣的編碼寫入文件決定的。通過控制檯輸入字符串得到的字符串編碼也與控制檯的代碼頁有關。

詳見:
字符集編碼
字符編解碼的故事

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章