UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 18: illegal multibyte sequence

CSDN:http://blog.csdn.net/kicilove/article/
github:https://github.com/zhaohuicici?tab=repositories

問題:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 18: illegal multibyte sequence

原因:

本來想完成讀文件,再寫入另一文件的,但是在 fp.read() 時,一直遇到上面的錯誤
經搜索發現問題在於知道是

解決方法:

可以把 open 的方式變爲 二進制,也就是下面代碼裏的 open(filename,’rb’), 這下好了,至少後面的read() 可以通過。

代碼如下:

# _*_coding:utf-8_*_

import re

filename = 'train.txt'

### mark
fp = open(filename,'rb')

content1 = fp.read().decode('utf-8')

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

#注意content1的輸出
print(content1)


##附:其他部分
result = re.findall(reg,content1)
fp.close()
fp = open(filename,'bw')
for r in result:
    r = r.encode('utf-8')
    fp.write(r)
    fp.write('\n'.encode('utf-8'))
fp.close()

結果輸出:
0   你好嗎?立夏了,心中又把你想起。願會心的微笑,排滿你每天的日曆;拋棄壓力,嬰兒般愜意地呼吸;天氣轉熱,別忘好好保重自己!
1   女子闖紅燈被攔 脫鞋猛抽交警-圖[騰訊]-中國移動衝浪助手:http://go.10086.cn/nd/lAz/cJctr
0   套餐餘量提醒服務:截至本月05日,您定製的(1)預存返話費捆綁10元流量包包含的數據流量剩餘49.15MB;本地數據流量剩餘12.90MB;(2)全球通88商旅套餐包含的語音剩餘254分鐘;數據流量剩餘30.00MB;感謝您的使用。

可見已經可以正常讀入啦!

CSDN:http://blog.csdn.net/kicilove/article/
github:https://github.com/zhaohuicici?tab=repositories

發佈了34 篇原創文章 · 獲贊 54 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章