하위 디렉터리에서 보기 좋지 않은 UTF-8 문자 인코딩 파일 이름을 수정하는 방법

하위 디렉터리에서 보기 좋지 않은 UTF-8 문자 인코딩 파일 이름을 수정하는 방법

내 파일 이름은 다음과 같습니다 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.pdfKäyttöohje.pdf(혼자 남음) 으로 변환되고
  • Käyttöohje.pdf아직 변환됨Käyttöohje.pdf

답변1

오류 파일이 이중 UTF-8로 인코딩된 것 같습니다.

예를 들어 äU+00E4는 다음과 같이 인코딩됩니다.

  1. U+00E4 -> 0xc3 0xa4(UTF-8 인코딩)
  2. 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. 틀렸어.

관련 정보