我正在通过 RE 搜索为人名抓取 xml 网页,但是如果名称包含特殊字符,python 无法正确读取它们。例如:
Güngüneş A
出来为:
G\xc3\xbcng\xc3\xbcne\xc5\x9f A
我怎样才能在我的输出中正确地制作这种格式?
我正在通过 RE 搜索为人名抓取 xml 网页,但是如果名称包含特殊字符,python 无法正确读取它们。例如:
Güngüneş A
出来为:
G\xc3\xbcng\xc3\xbcne\xc5\x9f A
我怎样才能在我的输出中正确地制作这种格式?
你是怎么读这些的?您使用的是什么操作系统?Python 2 还是 3?当我跑步时,
myStr = 'G\xc3\xbcng\xc3\xbcne\xc5\x9f A'
print myStr
我得到,'Güngüneş A'。
此外,当我使用内容“Güngüneş A”制作测试文件并运行时,
mystr = open('test', 'r').read()
print mystr
我得到'Güngüneş A'。
我正在使用 ubuntu 10.04/python 2.6 并且无法使用您提供的信息重现问题,如果您发布您正在使用的实际代码可能会有所帮助。也就是说,您可以尝试指定字符串的类型:
myStr = 'String'
myStr = u'Unicode string'
myStr = r'String literal: escape characters ignored'
或者,如果您想在代码中包含 unicode 字符,可以将此行添加到文件的开头,如本答案中所述:
# -*- coding: utf-8 -*-
使用decode()
:
>>> b'G\xc3\xbcng\xc3\xbcne\xc5\x9f A'.decode()
'Güngüne\u015f A'
(我的机器有 'ş' 的问题)