Entendendo as Codificações HTML
Você que usa HTML, XML e também PHP já se deu o problema de ter os acentos todos errados em seu documento html, isso se da por conta da Codificação HTML.
Separei este post para explicar melhor sobre as codificações, quais são elas, quais os problemas que elas nos dão e como resolve-los de forma pratica e eficaz. Vamos lá.
O que é Codificação HTML ?
A codificação html, ou também conhecida como Codificação de Caracteres, nada mais é que uma forma de armazenas caracteres especiais, e símbolos no seu computador em forma binária. Na maior parte das vezes, este mecanismo é feito em forma de tabela, onde os valores numéricos representam um símbolo.
As Codificações HTML:
As codificações mais conhecidas são:
- ASCII
- 8-bit encoding
- – ISO-8859-1
- Unicode
- – UTF-8
- – UTF-16
- – UTF-32
Tudo começo com ASCII, a codificação que define 128 caracteres, (0-127), ela era baseada no alfabeto inglês, tinha apenas 1 byte para representar todos os seus caracteres.
Codificação de 8 bits
A codificação de 8 bits é uma extensão do ASCII, onde ela utiliza apenas 1 byte como o ASCII, e utiliza 8-bits, onde possui o dobro da capacidade em relação ao ASCII, tendo então 256 caracteres.
ISO-8959-1
Esta é uma das codificações mais comuns nos sites da internet, ela possui todos os caracteres usados na Europa Ocidental, incluindo também Língua Portuguesa. É conhecida informalmente como latin-1, compondo o alfabeto Latino e mantem a compatibilidade dos primeiros 128 caracteres da tabela ASCII
Unicode
O padrão Unicode é implementado através do UTF-8, UTF-16 e UTF-32, onde podemos utilizar mais de 8-bits (até 4 bytes), ela suporta praticamente todos os idiomas do mundo. Atualmente é a codificação mais usada na Web, possuindo mais de 100mil símbolos mapeados, como símbolos matemáticos, formas algébricas, ideogramas japoneses, etc (Você pode ver todos os símbolos e, http://www.unicodetables.com/).
UTF-8
É um tipo de codificação Unicode, de byte variável, pode utilizar de 1 até 4 bytes, onde:
- 1 byte é compatível com a tabela ASCII (128)
- 2 bytes é o suficiente para caracteres latinos
- 3 bytes para o plano multilingual básico
- 4 bytes caracteres especiais e símbolos
UTF-16
Codificação também Unicode, de tamanho de byte variável, utilizando 2 ou 4 bytes, muito eficiente para textos escritos em idiomas de países asiáticos.
UTF-32
Codificação Unicode de tamanho de bytes fixo, utilizando sempre 4 bytes. Os símbolos são facilmente indexados, e utiliza o espaço de forma ineficiente, raramente utilizada.
Considerações e Dicas
Eu particularmente aconselho a usar o UTF-8, por conta de sua internacionalização, possuindo vários idiomas, e caracteres, possuindo também um suporte melhor em navegadores, IDEs, base de dados etc. Engloba todos os caracteres da web e é compatível com a tabela ASCII, sendo também a codificação mais popular na web
Usando a codificação UTF-8
Para usar a codificação utf-8 é simples, basta você criar um documento html, e colocar o seguinte código:
<head>
<meta charset="UTF-8"/>
...
Um dos problemas que você pode vir a ter usando o utf-8 é ao trazer resultados do banco de dados, por conta de versões do Mysql não serem compatíveis com o utf-8, mais isso é simples de resolver, basta você usar o código desta seguinte maneira:
<?php
echo utf8_encode($variavel_string);
?>
Bom, por em quanto é isso, espero que eu tenha conseguido esclarecer o que é a codificação html, caso ainda surja alguma dúvida, deixe um comentário ou mande-me um e-mail que eu lhe ajudarei.