
최근 UTF-8과 ISO-Latin-1 간 변환 시 내용이 완전히 구워진 여러 개의 손상된 파일을 발견했습니다. 이 파일을 어떻게 복구할 수 있나요?
관련 손상된 텍스트를 생성하는 과정은 다음과 같습니다.
- 원본 텍스트 "ó"는 UTF-8(
0xC3B3
)로 저장됩니다. - 인코딩된 바이트(
0xC3
및0xB3
)는 ISO-Latin-1 문자 "à" 및 "3"로 해석됩니다. - 이러한 문자는 UTF-8 표현(
0xC383
및0xC2B3
)으로 저장됩니다.
이제 파일에 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로 처리됨)을 그대로 둡니다.