저는 처음부터 파이썬 프로그래머입니다. 과거에는 약간의 자바를 알고있었습니다. 일부 텍스트 파일 (터키어)과 해당 xml 파일에 의 오프셋 번호가 텍스트에 있습니다. 예를자바와 파이썬의 문자열 오프셋
-<Conn>
-<Span>
<Text>ama</Text>
<BeginOffset>281</BeginOffset>
<EndOffset>284</EndOffset>
</Span>
</Conn>
이는 txt 파일 오프셋 (offset) 281에서 'AMA'이 있다는 것을 말한다. 그러나이 파일을 파이썬으로 읽을 때 'ama'는 301 바이트에 있거나 파일의 272. 문자입니다. 지금까지 내가 아는 한, 자바 애플 리케이션은 txt 파일을 읽는 동안 어떤 인코딩을 언급하지 않습니다. 그리고 유니 코드, 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
파일을 열고 읽는 데 사용하고있는 코드를 보여주십시오. –
바이트가 항상 문자와 같지는 않습니다 ... – vikingsteve
또 다른 차이점은 줄 끝 표시가 될 수 있습니다. 윈도우에서 그들은 2 raw 바이트입니다. – Gene