+5

Trabalhando com Unicode

criado por Rubens Takiguti Ribeiro em 02/12/2009 9:28pm
Se você trabalha com programação Web, provavelmente já utilizou a codificação de caracteres Latinos (ISO-8859-1) e conhece ou já deve ter ouvido falar de Unicode. Este artigo mostra o que é Unicode, quais os benefícios e como trabalhar com ela.

O que é uma codificação de caracteres?

Codificação de caracteres nada mais é que um mecanismo para armazenar símbolos em forma binária em um computador. Normalmente este mecanismo é feito através de uma tabela de valores numéricos que representam símbolos. Então a codificação especifica como converter um símbolo em código e um código em símbolo.

A tabela ASCII é uma das mais antigas e famosas tabelas de codificação de caracteres em computação. Nesta tabela, cada símbolo é representado por um número dentro do intervalo de 0 a 127. Um número entre 0 e 127 pode ser representado na forma binária com apenas 7 bits. Como a unidade básica dos computadores modernos é o Byte, que é composto de 8 bits, então a codificação ASCII define que cada símbolo é armazenado em um byte, sendo que o primeiro bit dos 8 disponíveis é ignorado (sempre é zero). Assim, o primeiro bit pode ser usado para checar, por exemplo, a integridade de uma sequência de caracteres transmitidos. Caso o bit não vale zero, então algo provavelmente chegou errado.

Alguns exemplos de símbolos representados pela tabela ASCII são:
Int | Binário  | Símbolo
... | ...      | 
40  | 00101000 | (
41  | 00101001 | )
42  | 00101010 | *
43  | 00101011 | +
... | ...      |
48  | 00110000 | 0
49  | 00110001 | 1
50  | 00110010 | 2
... | ...      |
65  | 01000001 | A
66  | 01000010 | B
... | ...      |
97  | 01100000 | a
98  | 01100001 | b
... | ...      |

Ela engloba alguns símbolos matemáticos básicos, alguns símbolos gerais, alguns caracteres de controle, números, letras maiúsculas e minúsculas. Note que o símbolo "1" não é representado pelo inteiro 1 (binário 00000001), mas pelo 49.

A codificação ASCII é muito útil para a lingua inglesa, que não acentua palavras. Para a realidade brasileira, ASCII não é muito amigável. A codificação Latin-1 (ISO-8859-1) é uma codificação parecida com a ASCII, mas define apenas caracteres imprimíveis, logo, é uma codificação com foco nas pessoas e não nos computadores. Como a tabela possui apenas 191 símbolos, também pode ser representada com um Byte, já que um Byte pode armazenar o valor inteiro de 0 a 255 (binário de 00000000 a 11111111). Alguns exemplos de símbolos da codificação ISO-8859-1 são:

Int | Bin      | Símbolo
... | ...      | 
40  | 00101000 | (
41  | 00101001 | )
42  | 00101010 | *
43  | 00101011 | +
... | ...      |
48  | 00110000 | 0
49  | 00110001 | 1
50  | 00110010 | 2
... | ...      |
65  | 01000001 | A
66  | 01000010 | B
... | ...      |
97  | 01100000 | a
98  | 01100001 | b
... | ...      |
231 | 11100111 | ç
232 | 11101000 | è
233 | 11101001 | é
... | ...      |

Note que a maioria dos símbolos da tabela ASCII são preservados na tabela ISO-8859-1, porém, a tabela ISO-8859-1 tem novos símbolos.

Comentários:

Mostrando 1 - 6 de 6 comentários
PazNatan disse:
ficou legalzinho
03/05/2010 1:01pm (~6 anos atrás)

Nelson disse:
Artigo explicado de forma bem "entendível", gostei muito.
Sugiro um deste tipo falando de array, seria legal.
17/03/2010 1:30pm (~6 anos atrás)

Ótimo artigo!!!
Você explicou muito bem desde a base até ao topo, fazendo-o ficar fácil de compreender!!!
Parabéns!!!
13/03/2010 7:13pm (~6 anos atrás)

Daniel Silva disse:
Uau! Magnífico o artigo! Muito elucidativo! Meus parabéns!
06/01/2010 1:10am (~7 anos atrás)

Marcos Regis disse:
Ótimo artigo. Parabéns.
05/12/2009 4:13pm (~7 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)