terça-feira, 29 de setembro de 2009

Utilizando UTF-8 corretamente

Resolva todos seus problemas de acentuação migrando para o conjunto de caracteres mais utilizado da web.
Outra vantagem é poder fazer um site que armazene textos em japonês, português, etc.
Esqueça ISO-8859-1 e sua turma!

Há um tempo atrás precisei fazer um site que armazenava e recuperava dados em japonês e português, tudo na mesma base de dados. A solução para isso foi utilizar a codificação UTF-8, esquecendo o famoso ISO-8859-1 (Latin).

Utilizando UTF-8 corretamente você se livrará de todos os problemas de acentuação que poderão ser causados em sua página e se livrar de vez de funções como utf8_encode() e derivadas.

Apesar de consumir alguns bytes a mais em seu armazenamento, você terá a vantagem de trabalhar com qualquer tipo de idioma, o conjunto de caracteres UTF-8 é bem amplo e poderoso.

O segredo está em deixar TUDO na codificação UTF-8.

- Arquivos .php devem ser salvos por sua IDE nesta codificação. (Qualquer editor possui esta opção, como por exemplo o Zend Studio ou Eclipse)

- Meta tag dos cabeçalhos HTML

- Cabeçalhos em seus arquivos PHP
header(”Content-Type: text/html; charset=UTF-8″, true);

- Banco de dados, tabelas e colunas com collation utf8_general_ci (você pode definir apenas no banco de dados e deixar que as tabelas e colunas assumam o collation definido no banco)

- Sempre iniciar uma conexão com o banco de dados alterando a codificação default do conector. Logo após iniciar a conexão com o banco de dados (por ex: mysql_connect) e antes de efetuar qualquer operação deve-se utilizar a seguinte instrução SQL uma única vez:

SET NAMES 'UTF8'

outra opção se você utiliza a biblioteca mysql é utilizar funções nativas como: mysql_set_charset(”utf8″, $conexao);

Se você já possui tabelas criadas e com registros armazenados, você deve ainda converter seus registros para a nova codificação, ou apagar todos os dados e inserir-los novamente. 


Fonte: php-obj 

Nenhum comentário:

Postar um comentário