Python中字符串的一些解码问题

2024-09-23 06:35:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将来自Google的HTML代码字符串写入python3.4中的文件

#coding=utf-8
try:
    from urllib.request import Request, urlopen  # Python 3
except:
    from urllib2 import Request, urlopen  # Python 2

useragent = 'Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0'

#Generate URL
url = 'https://www.google.com.tw/search?q='
query = str(input('Google It! :'))
full_url = url+query


#Request Data
data = Request(full_url)
data.add_header('User-Agent', useragent)
dataRequested = urlopen(data).read()
dataRequested = str(dataRequested.decode('utf-8'))


print(dataRequested)

#Write Data Into File
file = open('Google - '+query+'.html', 'w')
file.write(dataRequested)

它可以正确打印字符串, 但当它写入文件时, 它会显示出来的

^{pr2}$

我试着改变解码方式,但没用。 我也尝试过替换\u200e,但它会带来更多的编码字符错误。在


Tags: 文件字符串fromimporturldatarequestgoogle
1条回答
网友
1楼 · 发布于 2024-09-23 06:35:54

你的问题是

dataRequested = str(dataRequested.decode('utf-8'))

有理由把解码的UTF-8转换成字符串吗?但这还不是全部。当你从互联网上得到一个字符串时,它应该被解码,但是当你保存这个字符串时,它应该被编码。有些人不明白。它们要么解码要么编码。这样不行。在

我修改了你的代码。我在Python2.7和Python3.4上都很好。在

dataRequested = dataRequested.decode('utf-8')


print(dataRequested)

#Write Data Into File
file = open('Google - '+query+'.html', 'wb')
file.write(dataRequested.encode('utf-8'))

相关问题 更多 >