Mojibaked 파일 복구

Mojibaked 파일 복구

최근 UTF-8과 ISO-Latin-1 간 변환 시 내용이 완전히 구워진 여러 개의 손상된 파일을 발견했습니다. 이 파일을 어떻게 복구할 수 있나요?

관련 손상된 텍스트를 생성하는 과정은 다음과 같습니다.

  1. 원본 텍스트 "ó"는 UTF-8( 0xC3B3)로 저장됩니다.
  2. 인코딩된 바이트( 0xC30xB3)는 ISO-Latin-1 문자 "à" 및 "3"로 해석됩니다.
  3. 이러한 문자는 UTF-8 표현( 0xC3830xC2B3)으로 저장됩니다.

이제 파일에 bytes 가 포함됩니다 C3 83 C2 B3. 이를 통해 원래 문자열 "ó"를 재구성해야 합니다.

이러한(또는 유사한) 유형의 손상이 있는 파일을 복구하는 방법은 무엇입니까?

답변1

iconv -f utf8 -t latin1문제가 해결되어야 합니다.

예를 들어:

echo 'C3 83 C2 B3' | xxd -p -r ; echo                             # ³ is C2 B3; suspect typo in your question
ó                                                                # confirms xxd -p -r works
echo 'C3 83 C2 B3' | xxd -p -r | iconv -f utf8 -t latin1 ; echo
ó                                                                 # got the ó back

기본적으로 iconv는 Latin1->UTF8 변환을 취소하고 이전 "latin1"(이후 UTF8로 처리됨)을 그대로 둡니다.

관련 정보