Dica para quem tem problemas com o UTF-8 no WordPress

Ao instalar o WordPress, você tem a opção de utilizar codificação em ASCII ou em UTF-8, que são os dois sistemas mais usados atualmente. O ASCII é o sistema que “simplesmente funciona”, enquanto o UTF-8 é a novidade, o sistema novo e melhorado, mas que em compensação possui sua dose de problemas.

No meu caso, o que mais incomodava era a substituição das aspas por aspas inglesas e dos dois traços pelo traço longo, que atrapalhavam no caso dos posts com scripts, já que a substituição dos caracteres resultavam em erros ao copiar e colar o texto.

A solução veio com uma dica do Marcos Elias, que indicou o plugin Unfancy Quote. Originalmente ele é destinado a uma tarefa simples: substituir as aspas inglesas por aspas simples e as instruções no site não sugerem que ele faça nada além disso.

Entretanto, uma olhada rápida no código revela que ele é na verdade muito mais poderoso do que as aparências sugerem. Ele é um script bastante simples, que é executado pelo wordpress antes de exibir qualquer página, fazendo a substituição dos códigos das aspas. Isso é feito pela função “strip_quotes” no final do script:

function strip_quotes($text = ”)
{
$text = str_replace(array(“‘”, “’”, “′”), “'”, $text);
$text = str_replace(array(““”, “””, “″”), “"”, $text);
return $text;
} # end strip_quotes()

Como pode ver, ela é uma função bem simples. Dentro dos parenteses vão os códigos UTF-8 pelos quais o script procura e em seguida vai o código que substitui qualquer um deles quando encontrado.

Você pode ver as correspondências dos códigos no http://www.tony-franks.co.uk/UTF-8.htm. O “"” corresponde às aspas duplas, enquanto o “'” às aspas simples.

O segredo é que você pode adicionar novas linhas dentro da função para substituir qualquer outro caracter com o qual estiver tendo problemas. Basta abrir uma página do seu blog onde ele apareça usando o navegador, usar a função de exibir o código fonte para descobrir qual é o código do caracter e consultar a tabela do link anterir para ver qual é o código do caracter correto. No meu caso, quero substituir o traço longo, cujos códigos são o &#8211 e o – por dois traços simples, cujo código é -. Para isso, precisei apenas modificar o script, incluindo uma nova linha com as instruções:

function strip_quotes($text = ”)
{
$text = str_replace(array(“‘”, “’”, “′”), “'”, $text);
$text = str_replace(array(““”, “””, “″”), “"”, $text);
$text = str_replace(array(“–”, “–”), “--”, $text);
return $text;
} # end strip_quotes()

Como pode ver, este simples plug-in acaba sendo a solução mais simples para os problemas de substituição de caracteres no UTF-8. Basta alimentá-lo com os códigos dos caracteres que devem ser substituídos, criando uma tabela de substituição.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X