[linux] 텍스트 파일에서 UTF-8이 아닌 문자를 제거하는 방법

utf-8로 인코딩 된 아랍어, 영어, 러시아어 파일이 많이 있습니다. Perl 스크립트를 사용하여 이러한 파일을 처리하려고하면 다음 오류가 발생합니다.

Malformed UTF-8 character (fatal)

이 파일의 내용을 수동으로 확인한 결과 이상한 문자가 발견되었습니다. 이제 파일에서 이러한 문자를 자동으로 제거하는 방법을 찾고 있습니다.

어쨌든 그것을 할 수 있습니까?



답변

이 명령 :

iconv -f utf-8 -t utf-8 -c file.txt

잘못된 모든 문자를 건너 뛰고 UTF-8 파일을 정리합니다.

-f is the source format
-t the target format
-c skips any invalid sequence


답변

귀하의 메소드는 바이트 단위로 읽고 바이트 단위의 문자 구성을 완전히 이해하고 이해해야합니다. 가장 간단한 방법은 UTF-8 문자 만 출력하는 편집기를 사용하는 것입니다. Textpad는 하나의 선택입니다.


답변

cat foo.txt | strings -n 8 > bar.txt

일을 할 것입니다.


답변