2014-01-06 36 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列表。