mogę to zrobić w vim tak:Jak mogę zamienić znaki Unicode na ASCII w Perlu?
:%s/\%u2013/-/g
Jak zrobić równowartość w Perl? Myślałem, że byłoby to zrobić, ale nie wydaje się działać:
perl -i -pe 's/\x{2013}/-/g' my.dat
mogę to zrobić w vim tak:Jak mogę zamienić znaki Unicode na ASCII w Perlu?
:%s/\%u2013/-/g
Jak zrobić równowartość w Perl? Myślałem, że byłoby to zrobić, ale nie wydaje się działać:
perl -i -pe 's/\x{2013}/-/g' my.dat
Dla ogólnego rozwiązania, Text::Unidecode transliterować prawie wszystko, co jest rzucone na to w czystym US-ASCII.
Więc w twoim przypadku to będzie działać:
perl -C -MText::Unidecode -n -i -e'print unidecode($_)' unicode_text.txt
-C jest tam, aby upewnić się, że wejście jest odczytywane jako utf8
Przekształca to:
l'été est arrivé à peine après aôut
¿España es un paìs muy lindo?
some special chars: » « ® ¼ ¶ – – — Ṉ
Some greek letters: β ÷ Θ ¬ the α and ω (or is it Ω?)
hiragana? みせる です
Здравствуйте
السلام عليكم
do tego :
l'ete est arrive a peine apres aout
?Espana es un pais muy lindo?
some special chars: >> << (r) 1/4 P - - -- N
Some greek letters: b/Th ! the a and o (or is it O?)
hiragana? miseru desu
Zdravstvuitie
lslm `lykm
Ostatni pokazuje ograniczenia modułu, które nie mogą wywnioskować samogłosek i uzyskać asamaran alamkum z oryginału arabskiego. To wciąż bardzo dobry myślę
Hmm, trochę trudne. Wydaje się to zrobić (Perl 5.10.0 na MacOS X 10.6.2):
perl -w -e "
use open ':encoding(utf8)';
use open ':std';
while (<>)
{
s/\x{2013}/-/g;
print;
}
"
jeszcze nie zminimalizowane że. Zobacz perldoc w instrukcji "use open".
Sądząc po moich (ograniczonych) eksperymentach, opcja "-p" nie rozpoznaje dyrektyw "use open". Można użyć „qw()” zacytować słowa:
perl -w -e "
use open qw(:encoding(utf8) :std);
while (<>)
{
s/\x{2013}/-/g;
print;
}
ja nie wiem, czy „-p” nieprzestrzegania „używać otwartego” jest to błąd lub funkcja projekt.
zrobił to sztuczka dla mnie:
perl -C1 -i -pe 's/–/-/g' my.dat
Zauważ, że pierwszy pasek jest \ x {2013} postać sama.
Niektóre wyjaśnienia "-C1" zdziałają cuda. Informacje są dostępne na stronie http://perldoc.perl.org/perlrun.html (-C1 oznacza "standardowe wejście w UTF8"). –
Alternatywnie, można po prostu określić kodowanie UTF-8 znaków chcesz zastąpić:
perl -i -pe 's/\xE2\x80\x93/-/g' my.dat
Tutaj wartość hex E28093 jest kodowanie UTF-8 o wartości hex 2013. Można znaleźć różne narzędzia w trybie online, aby uzyskać kodowanie UTF-8 dla postaci, lub możesz po prostu spojrzeć na my.dat w edytorze szesnastkowym.
Tak, byłoby interesujące wiedzieć, dlaczego -p nie działa. – stephenmm