CHARSET

From DreamsIT



Última atualização: 18/05/2020


Caracteres distorcidos[edit | hide all | hide | edit source]

O erro comum é a impressão distorcida, na tela, de acentos em português como, por exemplo, a palavra codidificação que pode aparecer dessas duas formas: codifica��o ou codificação.

Quando aparece assim codifica��o, sua página em ISO-8859-1 está obtendo a palavra codidificação armazenada em UTF-8 da origem, seja ela do banco de dados ou de um XML, txt e etc.

Já o segundo caso em que codidificação aparece dessa maneira: codificação, é a sua página em UTF-8 exibindo a palavra codidificação armazenada em ISO-8859-1 da origem.


Corrigindo a distorção com os encodings[edit | hide | edit source]

As configurações devem ser feitas conforme a sua necessidade, segundo as configurações abaixo.

Através do cabeçalho HTTP[edit | hide | edit source]

Content-Type: text/html; charset=utf-8

Raramente será configurado manualmente pelo desenvolvedor. Geralmente os servidores web já são configurados desde sua instalação. Essa possibilidade elimina as outras duas abaixo. Mas só se você tiver autorização à configuração do servidor geral para todos as aplicações ou para a aplicação que você está usando.



Através da Meta Tag[edit | hide | edit source]

Configurando a charset ISO-8859-1[edit | hide | edit source]

<!DOCTYPE html>
<html>
     <head>
          <title>Minha pagina</title> 
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     </head>
     <body>
         Codificação
     </body>
</html>
Salvando em ISO-8859-1 na IDE[edit | hide | edit source]

Depois de colocar o código como acima em seu código html, salvar também da mesma forma na IDE como ISO-8859-1, ou Latin1, ou Europeu Ocidental ISO, ou ANSI (caso você use o Bloco de Notas do Windows).



Configurando a charset UTF-8[edit | hide | edit source]

<!DOCTYPE html>
<html>
     <head>
          <title>Minha pagina</title> 
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     </head>
     <body>
         Codificação
     </body>
</html>
Salvando em UTF-8 na IDE[edit | hide | edit source]

Depois de colocar o código como acima em seu código html, a codificação deverá ser Unicode / UTF-8 também na IDE.


No banco de dados[edit | hide | edit source]

Caso persista o erro, após as soluções acima mostradas, é bom verificar o banco de dados. Contudo, não é sempre que os collations ou encoding serão os responsáveis. No caso do MySQL e do PostgreSQL, não haverá nenhum problema de exibição do caractere, mas na hora da busca ele pode não saber o que é o caractere acentuado. O SQL Server já é mais passível de exibir erros conforme o collation especificado.


Criação de uma função[edit | hide | edit source]

A criação desta função vai variar conforme a linguagem que você está utilizando. E mesmo que você especifique um dos cabeçalhos acima com o enconding desejado, o usuário pode forçar um outro enconding pelo navegador e gerá muitos erros e culpar o teu site ou sistema por isso. Por isso, uma função prevenirá essa ação por parte do usuário.

Sugestão de caracteres permitidos[edit | hide | edit source]

números > 0123456789

letras maiúsculas > ABCDEFGHIJKLMNOPQRSTUVWXYZ

letras minúsculas > abcdefghijklmnopqrstuvwxyz

caracteres especiais > “‘!@#$%&*()_-+={[}]|\<,>.:;?/ (espaço também conta)

E para ser usado com cautela:

caracteres acentuados > ÁÉÍÓÚ áéíóú ÂÊÔ âêô Àà Üü Çç Ññ Ã



Qual dos encondings eu devo usar?[edit | hide | edit source]

Depende! A diferença do ISO-8859-1 e do UTF-8 é que um suporta até 256 caracteres (0 a 255, ou 0x00 a 0xFF) e o outro suporta até 65.536 caracteres (0 a 65535, ou 0x0000 a 0xFFFF).

O que leva alguns desenvolvedores a utilizarem o ISO-8859-1 é a economia de espaço, tráfego de rede e velocidade na exibição no caso de grandes quantidades de dados, Um caractere UTF-8 chega a ter o dobro do tamanho de um caractere ISO-8859-1, em compensação, o UTF-8 suporta a maioria das letras, números e outros caracteres dos diversos países do mundo (se não forem todos), o que acaba fazendo do UTF-8 um padrão internacional.

Entretanto, só é aconselhável ser utilizado o UTF-8 quando se sabe que seu sistema lidará com textos em idiomas distintos, como japonês, chinês, árabe, russo, grego e outros cujos caracteres não são de origem romana, do contrário, você pode usar o ISO-8859-1, pois ele suporta os idiomas de origem latina (português, espanhol, francês e italiano) e também inglês, alemão, dinamarquês e dos demais países da Europa Ocidental.




Se você gosta do meu conteúdo, considere comprar um café para mim

Visite-nos sempre!!!

Lembre-se: Programar não faz de você um programador. Mas não ser capaz de parar de programar faz!

Obrigado pelo seu apoio!