2014-01-06 119 views
0

我想测试一个给定的字符串是否在片假名范围内。在Python中处理Unicode范围

我试过这里问的解决方案:Python and Unicode Blocks for regex。但是,我的输出仍然是“无”。我在这里错过了什么?

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
import re 
print re.search(u'[\u30A0-\u30FF]', u'カタカ') 
+0

在Windows上使用python 2.7 – shamim

+0

我注意到,在使用'u'[\ u30A0- \ u30FF]''时,他们使用'u'[\ u30a0- \ u30ff]''。这可能是区别吗? – SethMMorton

+1

适用于我。你确定你真的用UTF-8保存了文件吗? – geoffspear

回答

1

你的问题是你正在使用Windows。您指定源文件为UTF-8,但Windows不使用UTF-8 - 它使用各种代码页,具体取决于Windows本身的语言版本和设置。

许多编辑器将有一种方法来覆盖Windows代码页并将文件另存为UTF-8。记事本例如在另存为对话框上有一个Encoding列表。