如何将html实体转换为可读文本?

如何将html实体转换为可读文本?

我想要 html 数字实体,例如 ę并想将其转换为真实角色。我的电子邮件主要来自 linkedin,如下所示:

chciałabym zapytać, czy rozważa Pan takze udział现在华沙的项目是什么? Obecnie poszukujemy specjalisty javascript/architekta z bardzo dobrą znajomością Angular.js 做项目,który dotyczy systemu,służącego do monitorowania i zarządzania flotą pojazdów。 Zespół,做 którego poszukujemy

我正在使用clawsmail,切换到html不要将其转换为文本,我尝试复制和使用

xclip -o -sel clip | html2text | less

但它没有转换实体。有没有办法使用命令行工具获取该文本?

我能想到的唯一方法是data:text/html,<PASTE THE EMAIL>在浏览器中使用并打开它,但更喜欢命令行。

答案1

使用 Free recode(以前称为 GNU recode):

recode html < file

如果您没有recodeHTML::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=locale,I/O 是在区域设置的字符集中完成的。这包括来自 的输入email.txt。它看起来email.txt只包含 ASCII 字符(使用我认为的符号对这些字符进行编码的全部意义&#x<hex>;),但如果不是,您可能需要调整上面的内容以使用正确的字符集解码该文件(如果它与语言环境的字符集不同)一)而不是使用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"应该可以解决问题。

相关内容