em Uncategorized

Caracteres especiais no javascript – use o código Unicode

Alguma vez você teve que no javascript dar um alert de textos em outros idiomas? Com caracteres especiais? Do tipo Vyplňte?

Me deparei com essa situação na semana passada: num site multi-idiomas, apareceu a versão tcheca (sem trocadilhos) das páginas. E um formulário era validado via javascript com alert. Achei que não teria problema: projeto todo setado com UTF-8 como encoding, charset do html também… quando fui dar o alert, todo os caracteres especiais apareceram com aquela famosa interrogração envolta de um ouros preto. Pesquisei um pouco no Google evi algumas soluções.

A que eu adotei – depois de testar todas – foi a de usar o código unicode do caracter. Para isso, só é necessário no javascript escrever barra invertida + u + código unicode.
Por exemplo, o código unicode do cedilha (ç) é 00e7. Então, um alerto do cedilha ficaria:

alert("u00e7");

No caso daquela frase acima, o alerto ficou assim:

alert("Vypl\u0148te")

Pelo que li, dá também para usar o código hexadecimal do caracter; não testei!

Existem tabelas de conversão de caracteres, mas para facilitar tenho usado essa página: http://hamstersoup.com/javascript/regexp_character_class_tester.html

Você coloca o texto e ele converte para unicode (entre outros códigos).

Escreva um comentário

Comentário