디렉토리 및 파일 이름에서 독일어 움라우트 인코딩 수정 (ü = u╠ê 등)


13

독일어 움라우트 (äüöÄÜÖß)에 대한 인코딩 오류가있는 zip 파일이 많이 있습니다. 그것들은 filename.zip뿐만 아니라 다음과 같이 포함 된 디렉토리와 파일에 나타납니다 :

  • 펀프 = Fu╠ênf
  • Räuber = 라 ╠ 버
  • 우버 폴 = 우버 폴

등등. 일반적으로 Linux를 사용하지만이 문제로 인해 Windows7 VM도 시도했지만 동일한 인코딩 엉망이 발생합니다. 리눅스에서는 convmv와 detox를 가지고 놀았지만 성공하지 못했습니다.

내가 사용할 때

  • convmv -f iso-8859-1 -t utf8-바꾸기 --notest -r *

"스킵, 이미 UTF-8"이 표시됩니다.

이것에 대한 생각?


어떤 골동품 시스템을 사용하고 있습니까? 현재 모든 Linux 배포판에서는 UTF-8을 사용합니다.
BatchyX

이것이 파일 시스템 문제 일 수 있습니까? 아마도 UTF로 마운트되지 않았습니까?
terdon

Linux Mint 13 (커널 3.2.0-23과 함께 Ubuntu 12.04 LTS 기반)을 사용하므로 골동품이 아닙니다. 그리고 이미 쓴 것처럼 Windows 7 VM에서도 해당 파일을 사용해 보았습니다. 그러나 물론 zip 파일을 만든 사람이 무엇을 사용했는지 알 수 없습니다.
사이다

1
이 인코딩은 일종의 DOS 인코딩으로 보입니다. 내가 UTF8 인코딩을 문제를 참조 일반적으로 경우 독일의 움라우트는 = ä 또는 u = AOE처럼
사이다

@cider try find -type f -print0 |xargs -r -n1 -0 convmv -f WINDOWS-1252 -t UTF-8 --notest 이것은 현재 디렉토리에서 파일을 찾고 각 파일에서 개별적으로 convmv를 실행합니다. 파일 이름은 종료되지 않은 목록으로 인코딩됩니다.
Manwe

답변:


2

"이미 UTF-8"경고가 표시되는 이유는 해당 문자열이 실제로 UTF-8에 있기 때문입니다. "ü"문자는 OSX 스타일을 'u'로 인코딩 한 다음 2 바이트 "\ xCC"및 "\ x88"로 인코딩했습니다. 이 두 바이트는 함께 결합 분음 기인 \ u0308의 UTF-8 표현을 구성합니다.

여기 에 나열된 코드 페이지 437을 보면 \ xCC 문자는 "╠"이고 \ x88 문자는 "ê"입니다.

문자 시퀀스를 표시하는 데 사용하는 것은 UTF-8이 아니라 CP437로 해석됩니다.

루비를 읽으면 UTF-8 터미널에 예상대로 표시되는 빠른 증거입니다.

$ ruby -e 'puts "u\xCC\x88"' | iconv -f cp437 -t utf-8
ü
$ ruby -e 'puts "u\xCC\x88"'
ü

0

내 생각 엔 파일을 압축 해제하거나 조작하려는 파일 시스템입니다. FAT32는 움라우트를 좋아하지 않을 것입니다. 플래시 드라이브에서 파일을 복사 한 다음 압축 파일을 압축 해제하여 파일 이름이 어떤 종류의 문자를 생성하는지 확인하십시오.

NTFS (Windows) 및 Ext4 (Mint) 모두 이름 인코딩에 문제가 없어야합니다.

FAT32 시스템에서 zip 파일 자체의 이름 인코딩은 적절한 지원 파일 시스템에 복사 할 때 변경되거나 수정되지 않을 가능성이 있지만 압축 해제시 서브 디렉토리는 양호해야합니다.


0

먼저 문자 인코딩은 자체적 인 섹션입니다. Windows 세계에서는 UTF-8과 M $ 사이에서 오랫동안 바보 같은 행동을하고 ISO-8859 (이를 생각 해낸 사람)를 고집하는 불쾌한 이원론이 여전히 존재합니다. 위에서 언급했듯이 파일 시스템과 관련이 있습니다. 내 솔루션은 기술적 인 것이 아니라 여러 해 동안 저에게 효과적이었습니다.

파일 이름에 대한 개인적인 조언은 항상 같습니다. 영숫자 + 대시 (-) 및 밑줄 (_)을 고수하십시오. umlaute를 ae, ue 및 oe로 작성하십시오. 공백과 다른 특수 문자를 사용하지 마십시오. 처음에는 약간 불편하지만 예기치 않은 장소에서 많은 고통을 덜어줍니다.

참고로 : 예, 이것은 일종의 불쾌한 "해킹"이지만 크로스 플랫폼을 사용하는 경우 종종 마지막 공통 분모로 돌아 가야합니다. 문자 인코딩과 같은 기본은 어려운 표준이지만 표준은 얻기가 어렵다는 것을 당연한 것으로 생각합니다. 이 XKCD 는 그것을 아주 멋지게 요약합니다.


Mac, Windows 및 Linux (동기화를 통해) 사이에서 파일을 동기화하려고 할 때 파일 이름의 인코딩 문제에 질려서 피곤합니다. 나는 당신의 조언을 조정할 것이지만 터키어에는 ç, ş, ı, ğ, ü, ö가 있으며 영숫자로 작성하는 것이 편리하지 않습니다. 클라우드 스토리지 사용을 자제하고 싶지만이 문제로 인해 그렇게합니다.
Teo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.