我想要 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
如果您没有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=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"
应该可以解决问题。