2012-10-01 2 views
1

이 같은 UTF-8 문자 시퀀스를 포함하는 일반 텍스트 파일 (.yml)가 :변환 UTF-8 문자 시퀀스

foo는 "\ \ XC3 엔 Dette 어 XB8 \ X C 3 \ X B (8)

: 그들은 8 개 실제 문자로 텍스트 파일에 저장되기 때문에, "UTF-8 바이트 실제 -"이 그렇지 않은

문제는 XB8 \ \ XC3에있다 " 이들을 실제 2 바이트 UTF-8 시퀀스로 변환하는 방법이 있습니까?

모든 OS/언어/쉘 도구는 파일을 변환

:-)

/카슨

+0

이 '시퀀스'만 있습니까? – Serge

+0

이것은 단지 예입니다. 많은 다른 언어에서 모든 종류의 비 ASCII 문자가 있습니다. 그래서 간단한 정규 표현식 대체는 의문의 여지가 없습니다. –

+0

텍스트에 '의도'(이스케이프 된 시퀀스가 ​​실제로 포함되어 있음)가 포함될 수 있습니까? – Serge

답변

2

사용이 펄 스크립트를 사용할 수 있습니다 :

#!/usr/bin/perl 
while (<STDIN>) { 
    $_ =~ s/\\x([0-9A-F][0-9A-F])/chr(hex($1))/eg; 
    print $_; 
} 

이의 당신이 파일을 이름을 가정 해 봅시다 스크립트를 bogusutf으로 설정 한 다음이 명령으로 변환을 수행하십시오.

$ perl bogusutf < 입력 파일> 출력 파일

+0

... "딱지와 ø" – Serge

+1

이것은 펄이 진정으로 빛나는 곳입니다. –

+0

필자가 필요로하는 것 - Perl은 약간 녹슬 었습니다. 감사! –