In Perl, Wie Ersetze ich den utf-8-Zeichen wie \x91, \x{2018}, \x{2013}, \x{2014} mit einfachen ASCII-chars?

Arbeite ich mit verschiedenen Artikeln und das problem das ich habe ist, dass verschiedene Autoren verwenden unterschiedliche Zeichen für Zeichen.

Beispielsweise mehrere Dokumente, die ich derzeit arbeite, müssen mit Zeichen wie:

\x91
\x92
\x{2018}
\x{2019}

Und alle diese Zeichen stellen eine einfache zitieren '.

Was ich will zu tun ist, vereinfachen Sie die Artikel, sodass Sie alle hatten die gleiche Formatierung.

Kennt jemand ein Modul oder eine Methode, der Umwandlung dieser Zeichen und ähnliche (wie Anführungszeichen, Gedankenstriche, etc.), um einfache ASCII-Zeichen?

Ich bin derzeit dabei Dinge wie:

sub fix_chars_in_document {
    my $document = shift;
    $document =~ s/\xa0//g;
    $document =~ s/\x91/'/g;
    $document =~ s/\x92/'/g;
    $document =~ s/\x93/"/g;
    $document =~ s/\x94/"/g;
    $document =~ s/\x97/-/g;
    $document =~ s/\xab/"/g;
    $document =~ s/\xa9//g;
    $document =~ s/\xae//g;
    $document =~ s/\x{2018}/'/g;
    $document =~ s/\x{2019}/'/g;
    $document =~ s/\x{201C}/"/g;
    $document =~ s/\x{201D}/"/g;
    $document =~ s/\x{2022}//g;
    $document =~ s/\x{2013}/-/g;
    $document =~ s/\x{2014}/-/g;
    $document =~ s/\x{2122}//g; 
    return $document ;
}

Aber das ist sehr schwer habe ich manuell zu finden die Zeichen und ersetzen Sie Sie.

  • Schau vielleicht mal auf Text::Unidecode auf CPAN.
  • Ich habe es gerade ausprobiert, aber es wirkt sich auf alle Zeichen, nicht nur Strichen, Punkten, Anführungszeichen.
InformationsquelleAutor bodacydo | 2013-02-10
Schreibe einen Kommentar