我正在通过RE搜索为xml网页抓取人名,但是如果名称包含特殊字符,则python无法正确读取它们。例如:
Güngüneş A
出现:
G\xc3\xbcng\xc3\xbcne\xc5\x9f A
如何在输出中正确显示此格式?
答案 0 :(得分:0)
使用decode()
:
>>> b'G\xc3\xbcng\xc3\xbcne\xc5\x9f A'.decode()
'Güngüne\u015f A'
(我的机器有'ş'的问题)
答案 1 :(得分:0)
你是怎么读这些的?你用的是什么操作系统? 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字符,可以按照this answer中的说明将此行添加到文件的开头:
# -*- coding: utf-8 -*-