反饋已提交
網絡繁忙
程式碼就是將源物件的資訊內容按照一種標準格式或形式轉換為另一種標準格式。n 位二進制數可以組合成 2 的 n 次方個不同的資訊,給每個資訊規定一個具體碼組,此程式也叫程式碼。
如伺服器與用戶端的交互
舉個簡單的例子,在中國,標準的語言是普通話,一個說英語的美國人來到中國,他的話就需要先翻譯成中文才被中國人接受,這個翻譯的程式就是程式碼的程式。
因世界上有不同的語言和文字,所以需要將不同的文字程式碼,透過計算機處理和傳輸。現在程式碼的種類非常多,主要目的就是為了資訊間的轉換。
目前常用的字元程式碼有:ASCII(美國標準資訊交換碼)、EBCDIC(擴展的BCD交換碼)、GB2312、Unicode、UTF-8、ISO-8859-1 及 GBK 。下面就一般使用率較高及易混淆的程式碼作講解。
屬於單位元組程式碼,最多能表示的字元範圍是 0-255,應用於英文系列。比如,字母'a'的程式碼為 0x61=97。
很明顯,ISO-8859-1 程式碼表示的字元範圍很窄,無法表示中文字元。但是,由於是單位元組程式碼,和計算機最基礎的表示單位一致,所以很多時候,仍舊使用 ISO-8859-1 程式碼來表示。而且在很多協定上,預設使用該程式碼。比如,雖然"中文"兩個字不存在 ISO-8859-1 程式碼,以 gb2312 程式碼為例,應該是"d6d0 cec4"兩個字元,使用 ISO-8859-1 程式碼的時候則將它拆開為 4個位元組(一個位元組等於 8 位二進制數)來表示:"d6 d0 ce c4"(事實上,在進行儲存的時候,也是以位元組為單位處理的)。而如果是 UTF 程式碼,則是 6 個位元組"e4 b8 ad e6 96 87"。很明顯,這種表示方法還需要以另一種程式碼為基礎。
這就是漢字的國標碼,專門用來表示漢字,是雙位元組程式碼,而英文字母和 ISO-8859-1 一致(相容 ISO-8859-1程式碼)。其中 GBK 程式碼能夠用來同時表示繁體字和簡體字,而 GB2312 只能表示簡體字,GBK是相容 GB2312 程式碼的。
這是最統一的程式碼,可以用來表示所有語言的字元,而且是定長雙位元組(也有四位元組的)程式碼,包括英文字母在內。所以可以說它是不相容 ISO-8859-1 程式碼的,也不相容任何程式碼。不過,相對於 ISO-8859-1 程式碼來說,Uniocode 程式碼只是在前面增加了一個0位元組,比如字母'a'為"00 61"。
需要說明的是,定長程式碼便於計算機處理(注意 GB2312/GBK 不是定長程式碼),而 Unicode 又可以用來表示所有字元,所以在很多軟體內部是使用 Unicode 程式碼來處理的,比如 Java。
考慮到 Unicode 程式碼不相容 ISO-8859-1 程式碼,而且容易佔用更多的空間:因為對於英文字母,Unicode 也需要兩個位元組來表示。所以 Unicode 不便於傳輸和儲存。因此而產生了 UTF 程式碼,UTF 程式碼相容 ISO-8859-1 程式碼,同時也可以用來表示所有語言的字元,不過,utf程式碼是不定長程式碼,每一個字元的長度從 1-6 個位元組不等。另外,UTF 程式碼自帶簡單的校驗功能。一般來講,英文字母都是用一個位元組表示,而漢字使用三個位元組。
注意,雖然說 UTF 是為了使用更少的空間而使用的,但那只是相對於 Unicode 程式碼來說,如果已經知道是漢字,則使用 GB2312/GBK 無疑是最節省的。不過另一方面,值得說明的是,雖然 UTF 程式碼對漢字使用 3 個位元組,但即使對於漢字網頁,UTF 程式碼也會比 Unicode 程式碼節省,因為網頁中包含了很多的英文字元。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙