python - 在 python 字元串中,查找 utf 8 字元的索引

  显示原文与译文双语对照的内容
0 0

我試圖在一個外語中找到一個字元串中某個字元的索引( 或者索引) ( 例如字元): ش ) 。

我試過 unicode.find('ش')word.find(u'ش')word.find(u'uش') 和 正規表達式: 不可用。有趣的是,在調試模式中,word.find(u'uش') 在變數監視窗口中返回正確的索引,但是它不在實際代碼( 返回 index=-1 ) 中返回正確的索引。

我正在使用以下命令從文件中讀取字元串:


file= codecs.open(file,'r','utf-8')

有什麼我缺少的? 還是還有別的方法來解決這個問題?

时间: 原作者:

0 0

使用 codecs 讀取文件后,它不再是 UTF-8,它是內部Unicode字元串表示形式。 這應該與程序中的Unicode文本完全兼容。


>>> line=u'abcش'
>>> line.find(u'ش')
3

我以前的測試可能會引起誤解,因為這兩個字元串都是通過IDE輸入的。 下面是一個更好的例子:


>>> f = codecs.open(r'c:temptemp.txt', 'r', 'utf-8-sig')
>>> line = f.readline()
>>> print line
This is a test.ش

>>> line.find(u'u0634')
15

原作者:
...