伍、bit,byte識讀及字符編碼:
一、bit(位元):
- 可代表0或1的一個點(。或•),有兩種可能。
- 2bit代表2×2=4種可能:(0:。。)(1:。•)(2:•。)(3:••)。
- 3bit代表2×2×2=8種可能:(0:。。。)(1:。。•)(2:。•。)(3:。••)(4:•。。)(5:•。•)(6:••。)(7:•••)。
- 4bit代表2×2×2×2=16種可能,可代表0-15,恰可用「一個」16進位數字表示:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。
- 8bit代表2的8次方,共256種變化,代表0-255,用「兩個」16進位數字表示,如0A,B8,…
- 8bit叫做1byte(位元組),是電腦中使用的基本單位。
二、ASC II:
- 美國標準編碼,最早期的電腦字符編碼。
- 用1byte代表:字母大小寫、數字、英文標點符號、控制碼…。
- 前128個字元(0-127)比後128個字元基本而重要。前127個字符恰可以7bit(2的7次方)代表。
三、Big5編碼:
- 當電腦應用擴散到台灣後,台灣所制定的編碼系統之一,不是官方標準,但活最久。
- 用兩byte代表一個中文字第一個byte由A1-FE(93種變化),第二個byte由40-FE(191種變化),共可以有17763種變化。
- 收5401個常用字7652個次常用字,共13053個正體中文字。
- 沒收「煊、堃、酶、喆」等字。
- 其第二個字元沒有避開\5C(16進位),導致嚴重的問題。反斜是多種電腦語言中的控制字元。導致許(B35C)功(A55C)蓋(BB5C)等字引發程式中的嚴重問題。
- 無法在一篇文件中同時出現簡、正體字。
- 第一byte後來又擴充到81-A0,演變出倚天big5(Big5Eten)、香港Big5(Big5 HKSCS)、Big-unicode、Big5+、Big5E…。各套編碼間不盡相同。
四、萬國碼:
- 由國際標準組織Unicode協會制定,目的在收所有國家的字符,只編到16bit。
- 收20902個正體中文字,中日韓(CJK)字符。
- 不但常見字不齊的問題少(「煊、堃、酶、喆」等字都有收)。而且避開有5C(反斜)。
- 可以在一篇文件中同時出現簡、正體字。
- 為了適應電腦以byte為單位,發明了一套編碼規則,叫utf-8:
- 以下x代表編碼位元(bit)
- 1byte:0xxxxxxx:共128個基本字符。7個編碼位元 0-127,16進位0-7F。
- 2byte:110xxxxx,10xxxxxx:11個編碼位元,128-2047,16進位80-7FF。
- 3byte:1110xxxx,10xxxxxx,10xxxxxx:16個編碼位元,2048-65535,16進位800-FFFF。
- 4byte:11110xxx,10xxxxxx,10xxxxxx,10xxxxxx:21個編碼位元,65536-2097152,16進位10000-1FFFFF。為ISO10646字元集,非Unicode字元集。
- 11111xxx沒有用來編碼,16進位F8-FF。
- utf-8文件,常在文件開頭擺BF,BB,BF(十進位),提示這是一份utf-8文件。
- 在html中可以用「十進位數值;」或「十六進位數值;」代表Unicode字符。
- 正體中文是從編碼19968(一)到編碼40869(顩)共20902字,正體字從63744(豈)-64045(鶴)還有301個字。後面為什有這301字我也不知道,要另請教高明。
- utf-8文件,常在文件開頭擺EF,BB,BF(十進位65279),提示這是一份utf-8文件。
五、作業系統與編碼:
- Linux的檔名與檔案內容均能採用多種編碼,可以用big5也可用utf-8。
- windows檔案內容可以支援多種編碼,但檔名只能支援big5,另檔名避開/\:*?"<>|。
- filezilla上下傳檔案時,不會改檔名,即使兩邊的編碼不同,一為big5一為utf-8時。
- samba會依兩邊的編碼不同,一為big5一為utf-8時,自動轉換檔名。
- 瀏覽器上傳、下載時,依當時clint端瀏覽頁的編碼設定。
- Mail編碼暫不講,講義再補充。
六、convertZ操作: