我是一名初学者 python 程序员,过去我曾经了解一点 java。我有一些文本文件(土耳其语)和相应的 xml 文件,其中包含文本中连接词的偏移量。例如
-<Conn>
-<Span>
<Text>ama</Text>
<BeginOffset>281</BeginOffset>
<EndOffset>284</EndOffset>
</Span>
</Conn>
这表示 txt 文件的 281 偏移处有一个“ama”。但是当我用 python 读取这个文件时,'ama' 在 301. 字节或者是文件中的 272. 字符。据我所知,java应用程序在读取txt文件时没有提到任何编码。我尝试使用 unicode、UTF8 等读取文件……我需要从这些偏移量中找到一种方法来纠正文件中的位置。我的猜测,问题是由于土耳其字符(在不同的编码中可能需要不同数量的字节),但我无法弄清楚。任何建议对我来说都是非常非常好的。谢谢 编辑: 我在python3.3中使用了以下代码:
f = open(path, encoding='utf-8')
text = f.read()
text[272:275] # returns 'ama' but it should be text[281:284]
ibbyte = text.encode(encoding='utf-8')
inbytes[292:295] # returns 'ama' but this is also incorrect