我有疑问。
st = "b%C3%BCrokommunikation"
urllib2.unquote(st)
输出:'b\xc3\xbcrokommunikation' 但是,如果我打印它:
print urllib2.unquote(st)
输出:bürokommunikation
为什么不同? 我必须将 bürokommunikation 而不是 'b\xc3\xbcrokommunikation' 写入文件。
我的问题是: 我有很多具有从 URL 中提取的值的数据。我必须将它们存储为例如。 bürokommunikation 到一个文本文件。
最佳答案
当您打印
字符串时,您的终端仿真器会识别 unicode 字符 \xc3\xbc
并正确显示它。
但是,正如@MarkDickinson 在评论中所说,ü
在 ASCII 中不存在,因此您需要告诉 Python 您要写入文件的字符串是 unicode 编码的,以及您要使用的编码格式,例如 UTF-8 .
使用 codecs
库非常容易:
import codecs
# First create a Python UTF-8 string
st = "b%C3%BCrokommunikation"
encoded_string = urllib2.unquote(st).decode('utf-8')
# Write it to file keeping the encoding
with codecs.open('my_file.txt', 'w', 'utf-8') as f:
f.write(encoded_string)
关于python - URL 组件 % 和\x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34379432/