Как обрабатывать utf8 в командной строке (используя Perl или Python)?

Как я могу обрабатывать utf8, используя Perl (или Python) в командной строке?

Например, я пытаюсь разделить символы в каждом слове. Это очень просто для текста, отличного от utf8, например:

$ echo "abc def" | perl -ne 'my @letters = m/(.)/g; print "@letters\n"' | less
a b c   d e f

Но с utf8 это, конечно, не работает:

$ echo "одобрение за" | perl -ne 'my @letters = m/(.)/g; print "@letters\n"' | less
<D0> <BE> <D0> <B4> <D0> <BE> <D0> <B1> <D1> <80> <D0> <B5> <D0> <BD> <D0> <B8> <D0> <B5>   <D0> <B7> <D0> <B0>

, потому что он не знает о 2-байтовых символах.

Также было бы неплохо узнать, как это (т. е. обработка utf8 из командной строки) выполняется в Python.

15
задан Frank 16 March 2012 в 01:58
поделиться