Ich habe eine Reihe von arabischen, englischen und russischen Dateien, die in utf-8 codiert sind. Beim Versuch, diese Dateien mit einem Perl-Skript zu verarbeiten, wird folgende Fehlermeldung angezeigt:
Malformed UTF-8 character (fatal)
Beim manuellen Überprüfen des Inhalts dieser Dateien fand ich einige seltsame Zeichen in ihnen. Jetzt suche ich nach einer Möglichkeit, diese Zeichen automatisch aus den Dateien zu entfernen.
Gibt es sowieso etwas zu tun?
Antworten:
Dieser Befehl:
Bereinigt Ihre UTF-8-Datei und überspringt alle ungültigen Zeichen.
-f is the source format -t the target format -c skips any invalid sequence
quelle
pbpaste | iconv -f utf-8 -t -utf-8 -c | pbcopy
. Ich habe auch einen Alfred-Workflow mit einer globalen Verknüpfung zum Entfernen aller Sonderzeichen durch Targeting erstelltascii
.iconv -f utf-8 -t ascii//TRANSLIT
löste mein Problem. Es konvertiert geschweifte Anführungszeichen in gerade Anführungszeichen.-o
für verschiedene AusgabedateienIhre Methode muss Byte für Byte lesen und die byteweise Konstruktion von Zeichen vollständig verstehen und schätzen. Die einfachste Methode ist die Verwendung eines Editors, der alles liest, aber nur UTF-8-Zeichen ausgibt. Textpad ist eine Wahl.
quelle
wird den Job machen.
quelle