天天看點

網頁編碼:UTF-8、GB2312

通過改變charset=utf-8中的utf-8就可以改變網頁的編碼。 一般我們在寫css檔案時候也需要在css檔案頂部使用@charset "utf-8";來定義此CSS檔案編碼類型。一般html源代碼和css檔案編碼要統一,如果不統一會導緻CSS hack,頁面亂碼網頁頁面排版亂等相容問題。

國内常用的流行的有utf-8、gb2312這兩種。一般這兩種類型就能滿足國内網頁編碼需求。當然程式和資料庫中也會用到這兩種編碼類型來處理網頁和存儲資料類型。

UTF-8特性:

UCS 字元 U+0000 到 U+007F (ASCII) 被編碼為位元組 0x00 到 0x7F (ASCII 相容). 這意味着隻包含 7 位 ASCII 字元的檔案在 ASCII 和 UTF-8 兩種編碼方式下是一樣的.

所有 >U+007F 的 UCS 字元被編碼為一個多個位元組的串, 每個位元組都有标記位集. 是以, ASCII 位元組 (0x00-0x7F) 不可能作為任何其他字元的一部分.

表示非 ASCII 字元的多位元組串的第一個位元組總是在 0xC0 到 0xFD 的範圍裡, 并指出這個字元包含多少個位元組. 多位元組串的其餘位元組都在 0x80 到 0xBF 範圍裡. 這使得重新同步非常容易, 并使編碼無國界, 且很少受丢失位元組的影響.

可以編入所有可能的 231個 UCS 代碼

UTF-8 編碼字元理論上可以最多到 6 個位元組長, 然而 16 位 BMP 字元最多隻用到 3 位元組長.

Bigendian UCS-4 位元組串的排列順序是預定的.

位元組 0xFE 和 0xFF 在 UTF-8 編碼中從未用到.

GB2312特性:

GB2312标準共收錄6763個漢字,其中一級漢字3755個,二級漢字3008個;同時,GB2312收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄羅斯語西裡爾字母在内的682個全形字元。

GB2312的出現,基本滿足了漢字的計算機處理需要,它所收錄的漢字已經覆寫99.75%的使用頻率。GB2312中對所收漢字進行了“分區”處理,每區含有94個漢字/符号。這種表示方式也稱為區位碼。

01-09區為特殊符号。

16-55區為一級漢字,按拼音排序。

56-87區為二級漢字,按部首/筆畫排序。

10-15區及88-94區則未有編碼。

舉例來說,“啊”字是GB2312之中的第一個漢字,它的區位碼就是1601。位元組結構在使用GB2312的程式中,通常采用EUC儲存方法,以便相容于ASCII。每個漢字及符号以兩個位元組來表示。第一個位元組稱為“高位位元組”,第二個位元組稱為“低位位元組”。 “高位位元組”使用了0xA1-0xF7(把01-87區的區号加上0xA0),“低位位元組”使用了0xA1-0xFE(把01-94加上0xA0)。例如“啊”字在大多數程式中,會以0xB0A1儲存。(與區位碼對比:0xB0=0xA0+16,0xA1=0xA0+1)。

是以GB2312編碼中漢字區碼的十進制是從176到247,位碼是從161到255.之是以存儲了6763小于82*94=6768,是因為在區碼為215,位碼為250-254之間共五個編碼沒有漢字編碼,是以6768-5=6763個。

GB2312編碼可以通俗了解為國内通用的語言。