HTML 엔터티를 읽을 수 있는 텍스트로 변환하는 방법은 무엇입니까?

HTML 엔터티를 읽을 수 있는 텍스트로 변환하는 방법은 무엇입니까?

ę와 같은 HTML 숫자 엔터티를 원하고 이를 실제 문자로 변환하고 싶습니다. 내 이메일은 주로 다음과 같은 링크드인에서 왔습니다.

chciałabym zapytać, czy rozważa Pan takze udział 바르샤바에서 현재 진행 중인 프로젝트는 무엇입니까? Obecnie poszukujemy 사양은 javascript/architekta z bardzo dobrą znajomością Angular.js do 프로젝트, który dotyczy systemu, służącego do monitorowania 및 zarządzania flotą pojazdów입니다. Zespół, do którego poszukujemy

나는 Clawsmail을 사용하고 있는데 html로 전환하고 텍스트로 변환하지 않고 복사하여 사용해 보았습니다.

xclip -o -sel clip | html2text | less

그러나 엔터티를 변환하지는 않습니다. 명령줄 도구를 사용하여 해당 텍스트를 가져올 수 있는 방법이 있습니까?

내가 생각할 수 있는 유일한 방법은 data:text/html,<PASTE THE EMAIL>브라우저에서 사용하여 여는 것이지만 명령줄을 선호합니다.

답변1

recode무료 (이전 GNU ) 사용 recode:

recode html < file

엔터티 가 없거나 엔터티를 디코딩해야 하는 recode경우 다음을 사용하여 수동으로 수행할 수 있습니다.HTML::Entities&#x<hex>;

perl -Mopen=locale -pe 's/&#x([\da-f]+);/chr hex $1/gie'

답변2

~에서HTML 엔터티를 디코딩하는 방법은 무엇입니까?StackOverflow에서는 다음과 같은 간단한 Perl 솔루션을 구현할 수 있습니다.

perl -Mopen=locale -MHTML::Entities -pe '$_ = decode_entities($_)' email.txt

예를 들어 샘플 텍스트를 사용하여

$ perl -Mopen=locale -MHTML::Entities -pe '$_ = decode_entities($_)' email.txt
chciałabym zapytać, czy rozważa Pan takze udział w nowych projektach w Warszawie ? Obecnie poszukujemy specjalisty javascript/architekta z bardzo dobrą znajomością Angular.js do projektu, który dotyczy systemu, służącego do monitorowania i zarządzania flotą pojazdów. Zespół, do którego poszukujemy

를 사용하면 -Mopen=localeI/O는 로캘의 문자 집합에서 수행됩니다. 여기에는 의 입력이 포함됩니다 email.txt. ASCII 문자만 포함된 것처럼 보이지만 email.txt(내 생각에 이 문자를 인코딩하는 것이 전체 포인트라고 생각되는 표기법 사용 &#x<hex>;), 그렇지 않은 경우 위의 내용을 조정하여 올바른 문자 세트로 파일을 디코딩해야 할 수도 있습니다(로케일의 문자와 일치하는 경우). 문자셋이 다름) a) open=locale.

답변3

Python 3.2+ 버전은 파이프라인에서 사용할 수 있습니다.

python3 -c 'import html, sys; [print(html.unescape(l), end="") for l in sys.stdin]' < file

답변4

echo -e "\x01\x19"그러면 문제가 해결될 것입니다.

관련 정보