Python,UnicodeEncodeError:'charmap'编解码器无法对字符进行编码

时间:2015-11-02 23:43:53

标签: python python-3.x python-3.5

我想将网站的HTML写入我创建的文件,很难解码为utf-8但是它仍然会出现这样的错误,我使用print(data1)并且html正确打印并且我是使用 python 3.5.0

import re
import urllib.request

city = input("city name")   
url = "http://www.weather-forecast.com/locations/"+city+"/forecasts/latest"
data  = urllib.request.urlopen(url).read()
data1 = data.decode("utf-8")
f = open("C:\\Users\\Gopal\\Desktop\\test\\scrape.txt","w")
f.write(data1)

2 个答案:

答案 0 :(得分:2)

您已使用默认系统编码打开了一个文件:

f = open("C:\\Users\\Gopal\\Desktop\\test\\scrape.txt", "w")

您需要明确指定编码:

f = open("C:\\Users\\Gopal\\Desktop\\test\\scrape.txt", "w", encoding='utf8')

请参阅open() function documentation

  

在文本模式下,如果未指定编码,则使用的编码取决于平台:调用locale.getpreferredencoding(False)以获取当前的区域设置编码。

在您的系统上,默认值是无法处理数据的编解码器。

答案 1 :(得分:0)

f = open("C:\\Users\\Gopal\\Desktop\\test\\scrape.txt","w",encoding='utf8')


f.write(data1)

这应该有用,对我有用