Perl: Encode e Decode de strings e URL UTF-8

Essa aqui eu usei para para corrigir problemas com acentos nos email, porém serve para URL, string e outras mais.

Veja uma forma fácil de fazer o encode e decode de uma string.

Encode

Vamos fazer o Encode da string, você pode utilizar para criar URL seguras e validas.

$str =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;

Decode

A forma de reverter a URL codificada para a forma legível.

$str =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;

Exemplo

Veja o seguinte exemplo de programa simples.

#!/usr/bin/perl

$str="Minha avó e minha mãe não gostam de pão";
print("Normal: ".$str."\n");

$str =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
print("Encode: ".$str."\n");

$str =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
print("Decode: ".$str."\n");

Agora veja o resultado quando executamos

Normal: Minha avó e minha mãe não gostam de pão
Encode: Minha%20av%C3%B3%20e%20minha%20m%C3%A3e%20n%C3%A3o%20gostam%20de%20p%C3%A3o
Decode: Minha avó e minha mãe não gostam de pão

Referência

Fonte: http://codesnippets.joyent.com/posts/show/17

Rodrigo Luis Silva

Gestor de equipes especialista em sistemas GNU/Linux com vasta experiência em gerenciamento de storage, virtualização, network, desenvolvimento e outros.

More Posts - Website

Follow Me:
Twitter

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Home Programação Perl Perl: Encode e Decode de strings e URL UTF-8