여러 종류의 이진 데이터가 들어있는 파일이 있는데이 파일을 처리 할 모듈을 작성하고 있습니다. 2 바이트 빅 엔디안하고 문자열 (I는 struct.unpack()를 파싱하여) stringLength :이진 파일에서 UTF-8 문자열 읽기
다른 사이에, 다음과 같은 형식 UTF-8 인코딩 된 스트링을 포함한다. UTF-8이기 때문에 문자열의 바이트 길이가 stringLength 이상일 수 있으며 문자열에 멀티 바이트 문자가 포함되어 있으면 read (stringLength)가 짧아집니다. (다른 모든 데이터를 파일).
은 어떻게 UTF-8의 멀티 바이트의 특성을 인식하고, 파일에서 N UTF-8 문자 (N 바이트 구별)를 읽을 수 있습니까? 나는 30 분 동안 인터넷 검색을했는데 내가 찾은 모든 결과는 관련이 없거나 내가 할 수없는 가정을합니다.
당신이 stringLength 문자가 아닌 바이트 확신이 있습니까? –
와우, 정말 끔찍한 * 형식이 될 것입니다. 데이터를 이미 문자열이나 일종의 목록으로 읽었습니까? UTF-8 바이트는 문자를 만들기 위해 따라야 할 바이트 수를 결정하기에 충분히 쉽게 검사 할 수 있지만 이러한 문자 별 문자를 처리해야합니다. –
@GrahamBorland 100 %? 아니요. 실제로 멀티 바이트 문자를 사용하는 파일을 아직 찾지 못했습니다. 그러나이 경우에 대한 스펙을 해석하는 것이 좋습니다. – Surma