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

原作者:
...