留心文字編碼的不同

2021-09-08 12:53:32 字數 791 閱讀 2244

《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 ...