在python中从web中读取特殊字符

时间:2013-06-27 15:27:32

标签: python xml special-characters

我正在通过RE搜索为xml网页抓取人名,但是如果名称包含特殊字符,则python无法正确读取它们。例如:

Güngüneş A

出现:

G\xc3\xbcng\xc3\xbcne\xc5\x9f A

如何在输出中正确显示此格式?

2 个答案:

答案 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 -*-