[Cascavel-pm] Como lidar com caracteres nacionais
Nelson Ferraz
nferraz em gnubis.com.br
Domingo Abril 17 18:43:33 PDT 2005
Pessoal,
Eu estou desenvolvendo um chatbot em espanhol, mas estou encontrando problemas com acentuação.
Eu defini o "vocabulário" do bot em um arquivo XML, como esse:
<chat>
<user msg="(oi|hola|saludos)">
<bot msg="hola $nome! ¿como estás?"/>
<bot msg="hola $nome! ¿que tal?"/>
<bot msg="hola $nome! ¿como vamos?"/>
</user>
<user msg="(y tú|que tal|como estás)">
<bot msg="estoy bien, gracias"/>
<bot msg="muy bien, gracias"/>
</user>
</chat>
A seguinte condição compara o que o usuário digitou ($user_msg) com um padrão ($bot_msg).
if ($user_msg =~ m!$bot_msg!i) {
@resp = @{$_->{bot}};
my $resposta = eval("\"$resp[rand @resp]->{msg}\"");
return $resposta;
}
O problema é que a expressão regular falha ao pesquisar palavras acentuadas como "tú" e "estás".
Alguma sugestão? (Eu já tentei usar os módulos locale e POSIX, sem sucesso.)
[]s
Nelson
Mais detalhes sobre a lista de discussão Cascavel-pm