python - 查找 Python 字符串中 UTF-8 字符的索引

标签 python string unicode utf-8

我正在尝试查找外语 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/

相关文章:

php - MySQL Unicode Sinhala 数据到 DOMPDF

python - 列出 N 以下所有素数的最快方法

Python - 如何使用 NLP 从缩写文本中直观地理解单词?

python - 在 Django 中检查 M2M 交叉点的有效方法?

python - 使用 Matplotlib 在高斯上绘制标准差图

c++ - 空终止字符串的基本原理是什么?

ruby-on-rails - 处理 ruby​​ 1.8.7 中不同类型的 utf 连字符

java - 查找字符串和字符串前缀之间最长后缀长度的算法

java - 如何在 Java 中比较字符串?

delphi - 如何将 Unicode UTF-32(杂项符号和象形文字)分配(显示)给 TLabel.Caption?