Ich möchte HTML-Zahlenentitäten wie & # x119; und möchte es in echten Charakter umwandeln. Ich habe hauptsächlich E-Mails von LinkedIn, die so aussehen:
chcia & # x142; abym zapyta & # x107;, czy rozwa & # x17c; a Pan takze udzia & # x142; w nowych projektach w Warszawie? Obecnie poszukujemy specjalisty javascript / architekta z bardzo dobr & # x105; znajomo & # x15b; ci & # x105; Angular.js do projektu, kt & # xf3; ry dotyczy systemu, s & # x142; u & # x17c; & # x105; cego do monitorowania i zarz & # x105; dzania flot & # x105; pojazd & # xf3; w. Zesp & # xf3; & # x142;, do kt & # xf3; rego poszukujemy
Ich benutze clawsmail, wechsle zu HTML, konvertiere es nicht in Text, ich habe versucht zu kopieren und zu verwenden
xclip -o -sel clip | html2text | less
aber es hat die Entitäten nicht konvertiert. Gibt es eine Möglichkeit, diesen Text mithilfe von Befehlszeilentools zu erstellen?
Ich kann mir nur data:text/html,<PASTE THE EMAIL>
vorstellen, es in einem Browser zu verwenden und zu öffnen, würde aber die Befehlszeile bevorzugen.
c-v | html2text | recode html
html2text
; Ich bin mir nicht sicher, ob es darauf ankommt. Dieses Beispiel schlägt mit fehlrecode: Request 'html' is erroneous
. Es scheint, dass es jetzt auf diese Weise mit einem Bereich anstelle eines einzelnen Bezeichners ausgeführt werden muss :recode html..utf-8
. Ein bisschen seltsam, aber ich denke, es ist alles ähnlich, Codes auf einigen Ebenen zu übersetzen.html..
später aufhtml
2014 geändert wurde.html
Allein funktioniert definitiv mit der neuesten Version (Git Head von Dezember 2019) oder von 3.6 von 2008. Ist es möglich, dass Sie eine sehr alte Version haben?recode HTML..utf-8
.Von Wie kann ich HTML-Entitäten dekodieren? In StackOverflow können Sie möglicherweise eine einfache Perl-Lösung implementieren, z
zB mit Ihrem Beispieltext
Mit
-Mopen=locale
wird die E / A im Zeichensatz des Gebietsschemas ausgeführt. Das schließt Eingaben von einemail.txt
. Es sieht so aus, als ob esemail.txt
nur ASCII-Zeichen enthält (der ganze Punkt, an dem diese Zeichen mit der&#x<hex>;
Notation codiert werden, nehme ich an), aber wenn nicht, müssen Sie möglicherweise das Obige anpassen, um diese Datei auch mit dem richtigen Zeichensatz zu decodieren (wenn es nicht mit dem Gebietsschema identisch ist) eins) anstatt zu verwendenopen=locale
.quelle
-Mopen=locale
Option verwenden, damit der Text im Zeichensatz des Benutzers ausgegeben wird (und diese Warnung verschwinden lässt).Eine Python 3.2+ -Version kann in einer Pipe verwendet werden:
quelle
python3 -c'import html,sys;print(html.unescape(sys.stdin.read()), end="")'
echo -e "\x01\x19"
sollte den Trick machen.quelle
ę
zuecho -e "\x01\x19"
möglich sein sollte , mit sed.c-v | sed -e 's/&#x\([^;]*\);/\\u\1/g' -e 's/.*/echo -e "&"/' | bash