Text-Processing

如何將html實體轉換為可讀文本?

  • February 6, 2020

我想要像 ę 這樣的 html 數字實體 並想將其轉換為真實角色。我的郵件大多來自linkedin,看起來像這樣:

想要 & # x142; 讓我問 & # x107; 如果你也考慮參與 & # x142; 在華沙的新項目中?我們目前正在尋找具有非常好的 & # x105; 的 javascript 專家/架構師。熟人 & # x15b; 你 & # x105; Angular.js 用於一個涉及監控和管理車隊的系統的項目。車輛 & # xf3; w. 我們正在尋找的團隊

我正在使用clawsmail,切換到html不要將其轉換為文本,我嘗試複製和使用

xclip -o -sel clip | html2text | less

但它沒有轉換實體。有沒有辦法使用命令行工具獲得該文本?

我能想到的唯一方法是data:text/html,<PASTE THE EMAIL>在瀏覽器中使用和打開它,但更喜歡命令行。

使用 Free recode(以前稱為 GNU recode):

recode html < file

如果您沒有recodeHTML::Entities只需要解碼&#x<hex>;實體,您可以通過以下方式手動完成:

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

如何解碼 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.

引用自:https://unix.stackexchange.com/questions/149223