[Cascavel-pm] Como lidar com caracteres nacionais

Sammuel Souza sammuel.souza em gmail.com
Segunda Abril 18 11:12:43 PDT 2005


Veja uma solução que achei para trocar caracteres especiais em letras
normais...

Fiz isso faz muito tempo, deve ter outras soluções mas no dia eu fiz essa
por nao achar outra...

Codigo:

#!/usr/bin/perl

print "Content-type:text/html\n\n";

%carac_esp = (
        'á' => a, 'Á' => a, 'à' => a, 'À' => a, 'ã' => a, 'Ã' => a,
        'ä' => a, 'Ä' => a, 'â' => a, 'Â' => a,
        'é' => e, 'É' => e, 'ê' => e, 'Ê' => e,
        'è' => e, 'È' => e, 'ë' => e, 'Ë' => e,
        'í' => i, 'Í' => i, 'î' => i, 'î' => i,
        'ï' => i, 'Ï' => i, 'ì' => i, 'Ì' => i,
        'ó' => o, 'Ó' => o, 'ô' => o, 'Ô' => o,
        'ö' => o, 'Ö' => o, 'ò' => o, 'Ò' => o,
        'ú' => u, 'Ú' => u, 'û' => u, 'Û' => u,
        'ü' => u, 'Ü' => u, 'ù' => u, 'Ù' => u
 );

$msg = "Cão é muito legal. O gato está no chão. Mãe me traz um leite.";

$msg = lc($msg); # Deixa toda a frase em minuscula exceto os acentos.

while (($a1, $a2) = each(%carac_esp)) {
      $msg =~ s/$a1/$a2/g;
}

print "$msg";

Se ajudar...

[]'s Douglas de Souza
msn: sammuel.souza em gmail.com

qualquer coisa...

----- Original Message ----- 
From: "Nelson Ferraz" <nferraz em gnubis.com.br>
To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
Sent: Monday, April 18, 2005 10:33 AM
Subject: Re: [Cascavel-pm] Como lidar com caracteres nacionais


>>    Bom, se você propuser os outros pré-requisitos, ou algum código, pode
>> ajudar...
>
> O núcleo do programa é este loop, que retorna uma resposta aleatórea para
> a mensagem do usuário:
>
> 1  my @resp;
> 2  foreach (@{$bot->{user}}) {
> 3    my $bot_msg = $_->{msg};
> 4    if ($user_msg =~ m!$bot_msg!i) {
> 5      @resp = @{$_->{bot}};
> 6      my $resposta = eval("\"$resp[rand @resp]->{msg}\"");
> 7      return $resposta;
> 8    }
> 9  }
>
> Na linha 4 verificamos se a mensagem do usuário bate com uma das
> palavras-chave registradas, e, em caso positivo, recuperamos as possíveis
> respostas (@resp, na linha 5). A linha 6 usa um eval para que as variáveis
> $1, $2, etc, sejam corretamente interpoladas.
>
> O código-fonte completo está aqui:
>
> http://www.hola.com.br/chat.tgz
>
> Ainda não consegui resolver o problema da acentuação...
>
> []s
>
> Nelson
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm


Mais detalhes sobre a lista de discussão Cascavel-pm