0
我是一名初學者python程序員,過去我曾經知道一些java。 我有一些文本文件(土耳其語)和相應的xml文件,其中包含偏移號 文本中的連接詞。例如java和python中的字符串偏移量
-<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
請顯示您用於打開和閱讀文件的代碼。 – 2013-03-11 13:06:17
字節不總是等於字符... – vikingsteve 2013-03-11 13:11:41
另一個區別可能是行尾標記。在Windows中,它們是2個原始字節。 – Gene 2013-03-11 13:28:53