[SP-pm] Problema com encoding
Luis Motta Campos
luismottacampos em yahoo.co.uk
Segunda Julho 23 03:25:53 PDT 2007
On Jul 23, 2007, at 12:07 PM, Wendel Scardua wrote:
> Se fosse assim isso aqui não aconteceria:
>
> perl -e '%my_hash = ( ç => 1)'
> Unrecognized character \xC3 at -e line 1.
>
> Sendo que "ç" não é uma palavra composta. Se não me engano ele só
> vira string se bate com o \w+ usual, que foi o que eu quis dizer
> com "ser um identificador válido". Isto é, perl "estrito" não gosta
> que se use barewords, mas é bonzinho se elas estiverem à esquerda
> do => .
>
> Claro que isso é só um palpite meu baseado em observações, não em
> documentação ^_^;;;
Eu estou usando os valores UTF8 codificados para LATIN1 apenas para
ajudar voces a ver que o Perl processa corretamente identificadores
nomeados em UTF8. Desde que você codifique o teu arquivo
corretamente, pode escrever "c-cedilha" literalmente sem problemas.
Pode escrever teus identificadores em caracteres árabes, se quiser ;-)
pastures:~ lcampos$ perl -MO=Deparse -Mutf8 -e '%hash = ( \303\247 =>
q{a} )'
use utf8;
use utf8 ();
(%hash) = ("\347", 'a');
Hum. Parece que o default char-set do Perl ainda é LATIN1. Eu
precisei pedir por UTF8 explícitamente.
Mas funciona, e \w+, BTW, bate com "c" (em UTF8, cedilha é um
"atributo" do caracter).
Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}
Mais detalhes sobre a lista de discussão SaoPaulo-pm