[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