《ruby基礎教程》的第二十二章,有這樣一段示例**,意圖刪除讀取的html檔案的頭部和尾部,並儲存在新的txt檔案中。
1: htmlfile = "cathedral.html"
2: textfile = "cathedral.txt"
3: 4: html = file.read(htmlfile)
5: 6: file.open(textfile, "w") do |f|
7: in_header = true
8: html.each_line do |line|
9: if in_header && // !~ line
10: next
11: else
12: in_header = false
13: end
14: break if // =~ line
15: f.write line
16: end
17: end
但是我們試著將它執行一下卻發現,系統會報錯,並定位出許多錯誤點來。我們看一下錯誤資訊「invalid byte sequence in gbk (argumenterror)」,可以得知是文字編碼的問題。實際上是由於internal encoding 和 extertal encoding的不同造成的,我們只需在**前追加一行以下**就可以了。
encoding.default_external = encoding.find('utf-8')
用python轉換不同編碼的文字檔案
這本來應該是乙個很簡單的問題,一開始被我想複雜了。弄得繞了很大乙個圈。先說事例 得到乙個big5編碼的文字檔案,用記事本開啟顯示為亂碼,想轉換儲存為utf 8或gb 2312編碼文件,就這麼回事!開始以為要用到encode 和decode 進行內碼轉換後再儲存,結果py總是報錯 後來發現 在pyth...
關於文字的編碼
我們知道在計算機中儲存的都是0和1的二進位製碼,那怎麼用這些數字來表達我們通常用的字元呢?人們通過編碼的方式人為的規定了用特定的數字對應特定的字元。這就是編碼。計算機是在歐洲發明的,剛開始就只有歐洲人使用,他們為了在計算機上表示他們常用的字元美國制定了ascii碼表,因為它們的字元比較少 ascii...
文字編碼簡介
字元編碼概述 下表,按照固定長編碼和可變長編碼進行分類。gb2312和gbk如果從與ascii碼相容的角度來講,也可以認為是可變長編碼。對於ascii碼以外的文字都是2位元組編碼。ucs和unicode在1991年已經統一 ascii編碼 前32個字元 0x00 0x1f 為控制字元 33到126 ...