我使用Python壳牌在这种方式:

>>> s = 'Ã'
>>> s
'\xc3'

如何打印s变量,以显示字符A 380这是第一个和最简单的问题。说真的,我碰到一个网页,有非ASCII字符像以前和其他有类似A,E,I,N,等等。此外波浪线之后的内容,我想用在这些字符执行一个正则表达式对网页的内容模式表达式。

如何解决这个问题?

这是一个正则表达式的一个示例:

u'<td[^>]*>\s*Definición\s*</td><td class="value"[^>]*>\s*(?P<data>[\w ,-:\.\(\)]+)\s*</td>'

如果我使用Expresson应用工作得很好。

EDIT [2008.01.30 16时38]: 对不起,我的解释。我会尽力解释好。

我得从一个网页一些文本。我有一个网页的网址和我有正则表达式来获取文本。我认为是正则表达式的第一件事是错误的。我快报检查,并工作正常,我得到了我想要的文字。所以,我认为第二件事是打印页面的内容,那就是当我看到那个内容是不是我在网页的源代码中看到。的差别在于,非ASCII字符如A,E,I,等等。现在,我不知道我必须做的,如果这个问题是在页面内容的编码,或在正则表达式的模式文本。一个我定义正则表达式的是前一个。

在问题wolud是:是否有使用该图案文本具有非ASCII字符正则表达式???任何问题

有帮助吗?

解决方案

print u'Ã'.encode('utf-8')

如果你得到的文本外部,那么你必须专门进行解码('UTF-8)如

f = open(my_file)
a = f.next().decode('utf-8') # you have a unicode line in a
print a.encode('utf-8') 

其他提示

<强>如何打印s变量,以显示字符A 380 结果 使用print

>>> s = 'Ã'
>>> s
'\xc3'
>>> print s
Ã

我会用ord()来找出一个字符是ASCII /特殊:

if ord(c) > 127:
    # special character

这可能不会与多字节编码如UTF-8工作。在这种情况下,我会转换为Unicode测试之前。

如果您从网页上得到特殊的字符,你应该知道的编码。然后对其进行解码,请参阅 Unicode指南

编辑:我绝对不知道这个问题是什么......这可能是澄清这是个好主意。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top