我正在尝试查找外语 UTF-8
编码字符串中某个字符的索引(例如字符:ô
) >).
我尝试过unicode.find('Í')
、word.find(u'ô')
、word.find(u'\\uÍ')
以及正则表达式:re.compile(u'\\uô)
无济于事。有趣的是,在 Debug模式下的 Visual Studio(我的 IDE 使用 IronPython)中,word.find(u'\\uô')
在变量监 window 口中返回正确的索引,但它没有在实际代码中(返回index=-1
)。
我正在使用以下命令从文件中读取字符串:
file= codecs.open(file,'r','utf-8')
我有什么遗漏的吗?或者还有其他方法可以解决这个问题吗?
最佳答案
一旦使用编解码器
读取文件,它就不再是UTF-8,而是内部Unicode字符串表示形式。这应该与程序中的 Unicode 文字完全兼容。
>>> line=u'abcش'
>>> line.find(u'ش')
3
编辑:我之前的测试可能会产生误导,因为这两个字符串都是通过 IDE 输入的。这是一个更好的例子:
>>> f = codecs.open(r'c:\temp\temp.txt', 'r', 'utf-8-sig')
>>> line = f.readline()
>>> print line
This is a test.ش
>>> line.find(u'\u0634')
15
关于python - 查找 Python 字符串中 UTF-8 字符的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13634627/