내 파일 이름은 다음과 같습니다 Käyttöohje.pdf
. 이 이름이어야 합니다 Käyttöohje.pdf
.
다음을 사용하여 하위 디렉터리의 모든 파일을 변환할 수 있습니다.
convmv -f utf8 -t iso-8859-1 -r --notest *
Käyttöohje.pdf
로 변환됩니다 Käyttöohje.pdf
.
문제는 파일이 이미 양식인지 여부입니다.Käyttöohje.pdf
Käyttöohje.pdf
다음으로 변환된 파일K'$'\344''ytt'$'\366''ohje.pdf
위의 명령을 어떻게 변경하여
Käyttöohje.pdf
Käyttöohje.pdf
(혼자 남음) 으로 변환되고Käyttöohje.pdf
아직 변환됨Käyttöohje.pdf
답변1
오류 파일이 이중 UTF-8로 인코딩된 것 같습니다.
예를 들어 ä
U+00E4는 다음과 같이 인코딩됩니다.
- U+00E4 -> 0xc3 0xa4(UTF-8 인코딩)
- 0xc3 -> 0xc3 0x83 (iso8859-1
Ã
-> UTF-8), 0xa4 -> 0xc3 0xa4 (iso8859-1¤
-> UTF-8) 여기서 U+00E4의 UTF-8 인코딩의 각 바이트는 다음과 같이 해석됩니다. 단일 바이트 문자 세트(여기서는 iso8859-1 또는 windows-1252)로 다른 문자를 인코딩하고 UTF-8로 다시 인코딩합니다.
그러므로 convmv -f utf8 -t iso-8859-1
그것을 사용하는 것이 옳습니다. 이중 인코딩되지 않은 파일을 유지하려면 convmv
특수 옵션: 이 있으므로 --fixdouble
다음과 같아야 합니다.
convmv --fixdouble -f utf8 -t iso-8859-1 -r --notest .
전용섹션이 있어요convmv
수동:
이중 UTF-8(또는 기타) 인코딩된 파일 이름을 실행 취소하는 방법
때로는 특정 파일 이름이 "이중 인코딩"되었을 수 있습니다. 예를 들어 파일 이름이 이미 UTF-8로 인코딩되어 있는데 실수로 일부 문자 세트를 UTF-8로 변환했습니다. 반대로 하면 간단히 작업을 취소할 수 있습니다. 소스 문자 세트는 UTF-8이어야 하며 대상 문자 세트는 이전에 실수로 사용한 소스 문자 세트여야 합니다. "--fixdouble" 옵션을 사용하면 convmv는 변환 후에도 UTF-8로 인코딩된 파일만 처리되고 UTF-8이 아닌 파일에는 영향을 미치지 않도록 합니다. 이전에 "--notest" 없이 변환하여 올바른 결과를 얻고 있는지 확인해야 합니다. "--qfrom" 옵션도 도움이 될 수 있습니다. 이중 utf-8 파일 이름을 인쇄하면 문제가 발생할 수 있기 때문입니다. 터미널 - 일반적으로 제어 기능이 포함되어 있습니다. 터미널 창에서 흥미로운 작업을 수행할 수 있는 시퀀스입니다. 실수로 변환한 문자 세트가 확실하지 않은 경우 "--qfrom"을 사용하는 것은 파일 이름을 손상시키지 않고 필요한 인코딩을 찾는 좋은 방법입니다.
ÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóô
iso8859-1(코드 포인트 U+0000 U+00FF 포함)을 통해 인코딩된 이중 UTF 파일에는 U+00C2 -> U+00F4( ) 범위의 한 문자와 U+0080 -로 구성된 비ASCII 문자 시퀀스가 포함됩니다. > U+00BF 범위에 있는 하나 이상의 문자(U+0080 ~ U+009F는 제어 문자와 줄 바꿈하지 않는 공백입니다 ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿
). 특히 U+00E0(위 첫 번째 그룹의 소문자) 위의 문자 뒤에는 두 번째 그룹의 최소 2개 문자가 와야 한다는 점을 고려하면 이러한 시퀀스는 이중으로 인코딩되지 않은 텍스트에 나타날 가능성이 상대적으로 낮습니다 convmv --fixdouble
. 틀렸어.