Wie kann ich das ersetzen von Unicode-Zeichen mit ASCII in Perl?
Ich es in vim so:
:%s/\%u2013/-/g
Wie mache ich den Gegenwert in Perl? Ich dachte, dies würde es tun, aber es scheint nicht zu funktionieren:
perl -i -pe 's/\x{2013}/-/g' my.dat
InformationsquelleAutor stephenmm | 2010-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für eine generische Lösung, Text::Unidecode transliterate so ziemlich alles, was geworfen wird in reinem US-ASCII.
Also in deinem Fall das funktionieren würde:
Dem -C ist, sicherzustellen, dass die Eingabe gelesen wird als utf8
Konvertiert:
in diesem:
Die Letzte zeigt die Grenzen des Moduls, die keine Rückschlüsse auf die Vokale und get as-salaamu `alaykum aus dem arabischen original. Es ist immer noch ziemlich gut, ich denke,
InformationsquelleAutor mirod
Diese hat den trick für mich:
Beachten Sie, dass der erste Takt ist der \x{2013} Zeichen selbst.
InformationsquelleAutor Leon Timmermans
Hmm, ein bisschen hart. Dies scheint es zu tun (Perl 5.10.0 auf MacOS X 10.6.2):
Habe ich noch nicht minimiert. Sehen perldoc auf 'öffnen' - Anweisung.
Ausgehend von meiner (begrenzten) Experimente, die '-p' option nicht erkennt, 'open' - Richtlinien.
Sie können 'qw()' zu zitieren, die Worte:
Ich weiß nicht, wenn '-p' nicht gehorchen 'use open' ist ein Fehler oder ein design-Merkmal.
InformationsquelleAutor Jonathan Leffler
Abwechselnd, Sie könnten einfach geben Sie die UTF-8 Kodierung der Zeichen, die Sie ersetzen wollen:
Hier als hex-Wert E28093 ist die UTF-8-Codierung der hex-Wert der 2013. Finden Sie verschiedene online-tools, um die UTF-8-Codierung für ein Zeichen, oder Sie können schauen Sie einfach bei mir an.dat in einem hex-editor.
InformationsquelleAutor Russell Zahniser