Antworten:
Recode kann in HTML-Entitäten konvertieren:
$ echo "é" | recode ..html
é
Beim Rekodieren stehen einige leicht unterschiedliche HTML-Transformationen zur Verfügung. siehe info recode HTML
.
Wenn Sie eine Datei oder einige Dateien neu codieren möchten, können Sie verwenden
$ recode ..html one_file another_file and so on
Verwenden Sie für rekursive Aktionen den find
Befehl, z
$ find your_directory -type f -name "*.html"
Der obige Befehl find zeigt nur die Dateien an. Stellen Sie sicher, dass Sie nur die richtigen Dateien gefunden haben, keine Binärdateien und keine Dateien in unerwünschten Verzeichnissen. Es ist auch eine gute Idee, ein Backup zu erstellen oder eine Kopie Ihrer Dateien zu verwenden, nicht die echten Dateien. Wenn Sie den richtigen -exec your_command {} +
Suchbefehl gefunden haben, fügen Sie ihn hinzu , wobei Ihr_Befehl der recode ..html
von oben ist und {}
die Datei (en) bezeichnet, die von find zum Umcodieren angegeben werden:
$ find your_directory -type f -name "*.html" -exec recode ..html {} +
Aber warten Sie einen Moment, es gibt eine große Einschränkung: Es wird recode ..html
davon ausgegangen , dass sich Ihre Eingabedateien im selben Zeichensatz (Codierung) befinden, den Sie in der Befehlszeile verwenden. Wenn alle Ihre Dateien das "moderne" UTF-8 verwenden, funktioniert es einwandfrei, da Ubuntu UTF-8 aus dem Standard verwendet. Wenn einige Ihrer Dateien jedoch die ältere ISO-8859-1 oder andere Zeichensätze verwenden, ist dies viel komplizierter.
"$i"
. Diese doppelten Anführungszeichen stellen sicher, dass Ihre Variablenwerte nicht aufgeteilt werden.
wahrscheinlich sed. Tutorial hier
http://www.grymoire.com/Unix/Sed.html#uh-6
für Ihr Beispiel vielleicht Befehl
sed s/"é"/"\é"/g < oldfile > newfile
(Repariere mich, wenn ich falsch liege, habe ich eine Weile nicht gesehen)
wahrscheinlich standardmäßig installiertes gedit, Strg + H.
Überprüfen Sie die Quelle von http://www.text-symbols.com/tools/escape-chars/
Nehmen Sie dieses Javascript, führen Sie es in einer js-Umgebung aus, die einige E / A-Vorgänge (node.js) find -exec
ausführen kann, und suchen Sie einfach alle Dateien zum Konvertieren und führen Sie Ihren knotenbasierten Konverter für alle erforderlichen Dateien aus.
Inspiriert von Denwerkos Vorschlägen zur Verwendung von Sed habe ich ein gut dokumentiertes, leicht lesbares Open-Source-Bash-Skript geschrieben, das Buchstaben mit Akzent in HTML-Entitäten konvertiert. Sie finden es hier: http://www.lugato.co.uk/silvio_dwl.html Viel Spaß! ;)
rename 's/\ /_/g' *
und dannfor i in *.php; do iconv --from-code=ISO-8859-15 --to-code=UTF-8 $i > $i.iconv; mv $i.iconv $i; done
in UTF-8 zu konvertieren. Das Problem mit diesem Programm ist, dass es alle erdenklichen Zeichen ausführt, einschließlich HTML- und PHP-Tags.