我试图抓住一个网站,其中存在unicode字符。我在很begining -*- coding: utf-8 -*-
说加上我用re.UNICODE
标志寻找正则表达式,unicode模式
pattern = re.compile('(?:{}|{})'.format(regex, regex1), re.UNICODE)
然而,当我打印输出我还是让这些怪异字符像�
我该如何解决呢?谢谢!
我试图抓住一个网站,其中存在unicode字符。我在很begining -*- coding: utf-8 -*-
说加上我用re.UNICODE
标志寻找正则表达式,unicode模式
pattern = re.compile('(?:{}|{})'.format(regex, regex1), re.UNICODE)
然而,当我打印输出我还是让这些怪异字符像�
我该如何解决呢?谢谢!
这可能不是一个“答案”,但是你可以尝试使用http://www.debuggex.com来调试你的正则表达式。
仅仅因为它具有非拉丁字符的页面并不意味着它使用unicode编码(还有,哪个unicode编码?utf-8?utf-16?)。
此外,re.UNICODE
可能不会做你认为它的作用。从文档:
根据Unicode字符属性数据库设置'\ w,\ W,\ b,\ B,\ d,\ D,\ s`和`\ S`。
所有这一切意味着这些特定的字符类更广泛地定义,它对源文本没有影响。
此外,coding definition,-*- coding: utf-8 -*-
仅指定您的源文件的编码。
最后,如其中一个注释所述, 可以是使用当前字体不支持的字符的结果。反过来,这可能是假定某种编码,而文本以不同编码编码的结果。
谢谢,但我还在挣扎。我确定它是'utf-8' – nutship 2013-03-26 07:56:54
仅仅因为你的字体不支持各自的Unicode字符,你可能会得到 字形。 – nwellnhof 2013-03-25 23:16:18
它做百分之百。 – nutship 2013-03-26 07:44:26
您必须首先解码来自网站的UTF-8文本。例如,请参阅[此问题](http://stackoverflow.com/questions/10293234/why-wont-python-display-this-text-correctly-utf-8-decoding-issue)。 – nwellnhof 2013-03-27 00:48:08