텍스트 인코딩을 한 유형에서 다른 유형으로 변환 할 수있는 Mac OS X 명령 행 응용 프로그램이 있습니까? (특히 Mac OS Roman을 utf8로 변환)


16

Mac OS X 10.8에서 명령 줄 유틸리티를 호출하여 표준 Western Mac OS Roman 인코딩으로 저장된 텍스트 파일을보다 일반적인 UTF-8로 변환 할 수 있습니다.

내가 만든 AppleScript에서 유틸리티를 호출합니다. 매우 큰 텍스트 블록으로 작업 할 때 AppleScript가 매우 느립니다. 따라서 OS X 명령 줄을 사용하여 텍스트 구문 분석 및 변환을 수행하려고합니다. 텍스트 구문 분석을 수행 할 수있는 "sed"라는 도구를 찾았습니다. 그러나 파일을 utf-8로 열면 가비지로 나타나는 문자 (예 : 스마트 인용 부호 및 줄임표)로 정리해야하는 파일 요소가 여전히 많이 있습니다.

텍스트 인코딩 변환을 강제하면 파일에서 UTF8이 아닌 문자를 모두 제거하는 데 도움이 될 수 있다고 생각합니다. 그러나 "sed"가 어떻게 텍스트 인코딩을 쉽게 변환 할 수 있는지 알 수 없습니다.

내장 AppleScript 루틴을 사용하여 이미 temp txt 파일을 MacRoman으로 디스크에 저장했습니다.

텍스트 인코딩을 변환 할 수있는 내장 명령 줄 도구에 대한 아이디어가 있습니까? 내 스크립트의 다른 사용자가 기본 제공 도구가 아닌 경우 적절한 도구 세트를 가질 필요가 없기 때문에 성능 및 기본 제공을위한 명령 줄.

당신의 도움을 주셔서 감사합니다!


명령은 iconv입니다.
bmargulies

@ bmargulies : MacRoman으로 인코딩 된 파일에서 iconv를 시도하고 UTF-8로 변환하려고하면 원래 "비정상 문자"대신 가비지 문자가 나타납니다. 예를 들어 줄임표는 "Äö√Ѭ∂‚Äö√Ѭ∂"로 변환됩니다. 줄임표가 6 개의 기간으로 정상적으로 변환 될 것으로 기대합니다. 스마트 따옴표는 동일하며 이상한 텍스트로 변환되어 "Äö√Ñ√≤"로 바뀝니다. 사용하는 구문은 다음과 같습니다. cat source.txt | iconv -f MacRoman -t UTF-8> iconv_test.txt iconv가 모든 텍스트를 적절한 대체물로 정상적으로 변환하도록 지시하는 특정 CLI 구문이 있습니까?

그리고 당신은 어떤 주장을 전달합니까?
bmargulies 2013

@ Darkstar-- 동일한 절차가 저에게 효과적이었습니다. 소스가 MacRoman에 있었습니까?
Tom Gewecke

1
Excel에는이 문제가 없어야합니다. 가져 오기 인코딩을 원하는대로 설정할 수 있습니다 (예 : superuser.com/questions/280603/…
Tom Gewecke

답변:


8

비 ASCII 문자를 ASCII 변형으로 변환하는 또 다른 방법은 다음을 사용하는 것입니다 iconv -t ASCII//TRANSLIT.

$ echo ‘’“”–—…äé | iconv -t ASCII//TRANSLIT
''""--..."a'e

ASCII//IGNORE비 ASCII 문자를 제거하지만 예를 들어 tr -dc '\0-\177'.


하는가 iconv에 허가를 음역 : ä →에 "?

@danielAzuelos 몰라요. 문자 교체 방법은 구현 방식에 따라 다릅니다. 예를 들어 Debian ä과 함께 제공되는 iconv는 just로 대체 됩니다 a.
Lri November

28

iconv 확실히 여기에서 선택하는 도구입니다.

iconv -f MACROMAN -t UTF-8 your-roman-encoded-file.txt > utf-8-encoded-file.txt

iconv --list지원되는 모든 인코딩 목록을 보려면 실행 하십시오.


MacRoman이 아니라 "iso-8859-1"이라는 것을 알게되면 다시 시도했습니다. 여전히 내가 원하는 것을하지 않았습니다. iconv가 내가 원하는 것을 할 수 있다고 생각하지 않습니다. 모든 고급 확장 문자를 표준 마침표와 아포스트로피 및 큰 따옴표로 우아하게 바꿉니다.
Darkstar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.