1. 程式人生 > >UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 9: illegal multibyte sequence

UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 9: illegal multibyte sequence

lose import pretty 方式 encode pytho class ltib ret

上面是遇到的錯誤,本來想完成讀文件,再寫入另一文件的。但是在 fp.read() 時,一直遇到上面的錯誤,經過各種百度,google, 還有神奇的 stackoverflow 才知道是字符流的問題。

知道問題所在,還是沒有解決,又苦苦搜索,終於在 stackoverflow 上找到靈感,可以把 open 的方式變為 二進制,也就是下面代碼裏的 open(filename,’rb’), 這下好了,至少後面的read() 可以通過。

再之後就產生了以下代碼,發現問題的路真心不好走,在此mark 下。

# _*_coding:utf-8_*_

import re

filename = ‘section5‘

fp = open(filename,‘rb‘)

content = fp.read().decode(‘utf-8‘)

reg = r‘<p>(.*?)</p>‘


#print(content)
result = re.findall(reg,content)

fp.close()
fp = open(filename+‘.txt‘,‘bw‘)
for r in result:
    r = r.encode(‘utf-8‘)
    fp.write(r)
    fp.write(‘\n‘.encode(‘utf-8‘))
fp.close()

UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 9: illegal multibyte sequence