나는 convmv를 사용하여 러시아어 zip 파일의 파일 이름을 UTF-8로 변환하려고 합니다. 원본 파일 이름: "æ óá¡¿½¡δ⁄ áα«⁄áЄ«¼.jpg"(æ\ óá¡¿½¡δ⁄\ áα«¼áЄ«¼.jpg(슬래시 포함))
분석기(https://2cyr.com/decode/?lang=en) CP866 +를 CP437로 표시하는 소스 인코딩이 감지되었으며 필수 С ванильным ароматом.jpg로 성공적으로 디코딩되었습니다.
제 질문은, 올바르게 디코딩하도록 convmv를 어떻게 설정합니까?입니다. 의 경우 convmv -f cp866 -t utf-8 filename
"이미 UTF-8"이 표시되고 --nosmart 모드에서는 횡설수설이 발생합니다.
답변1
한 번에 convmv
한 수준의 버그만 수정할 수 있습니다 . 특정 파일이 더 복잡합니다. 원래는 cp866이었는데 어느 순간 UTF-8로 변환이 되었는데, 그 변환과 상관없이 원래는 cp437로 가정해서 변환이 잘못되었습니다. 이 문제를 해결하려면 다음을 두 번 실행해야 합니다 convmv
.
convmv -f utf-8 -t cp437 --notest 'æ óá¡¿½∞¡δ¼ áα«¼áΓ«¼.jpg'
convmv -f cp866 -t utf-8 --notest $'\x91 \xa2\xa0\xad\xa8\xab\xec\xad\xeb\xac \xa0\xe0\xae\xac\xa0\xe2\xae\xac.jpg'
두 번째 명령에서는 이름을 이스케이프 처리해야 했습니다. 이 작업을 일괄적으로 실행 중이거나 이 작업을 처리하고 싶지 않은 경우 다음과 같은 것을 사용하거나 *.jpg
영향을 받는 모든 파일을 자체 디렉토리에 넣고 -r
옵션을 사용할 수 있습니다 convmv
.