Diferenças de formato Unicode, UTF, ASCII, ANSI

Qual é a diferença entre as codificações Unicode , UTF8 , UTF7 , UTF16 , UTF32 , ASCII e ANSI ?

De que maneira são úteis para programadores?

Descendo sua lista:

  • ” Unicode ” não é uma codificação, embora, infelizmente, muita documentação imprecisamente a use para se referir a qualquer codificação Unicode que o sistema em particular usa por padrão. No Windows e Java, isso geralmente significa UTF-16; em muitos outros lugares, significa UTF-8. Adequadamente, Unicode refere-se ao conjunto de caracteres abstrato em si, não a qualquer codificação específica.
  • UTF-16 : 2 bytes por “unidade de código”. Esse é o formato nativo de strings no .NET e, geralmente, no Windows e no Java. Valores fora do Basic Multilingual Plane (BMP) são codificados como pares substitutos. (Estes são relativamente raramente usados ​​- o que é um bom trabalho, pois poucos desenvolvedores os acertam, eu suspeito. Eu duvido muito que eu faça isso.)
  • UTF-8 : codificação de tamanho variável, 1-4 bytes por ponto de código. Os valores ASCII são codificados como ASCII usando 1 byte.
  • UTF-7 : geralmente usado para codificação de email. As chances são de que, se você acha que precisa e não está fazendo correspondência, está errado. (Essa é apenas a minha experiência de pessoas postando em grupos de notícias, etc – fora do correio, realmente não é muito usado em tudo.)
  • UTF-32 : Codificação de largura fixa usando 4 bytes por ponto de código. Isso não é muito eficiente, mas facilita a vida fora do BMP. Eu tenho uma class .NET Utf32String como parte da minha biblioteca MiscUtil , se você quiser. (Não foi muito bem testado, lembre-se.)
  • ASCII : Codificação de byte único usando apenas os 7 bits inferiores. (Pontos de código Unicode 0-127.) Sem acentos etc.
  • ANSI: Não há uma codificação ANSI fixa – há muitas delas. Geralmente, quando as pessoas dizem “ANSI”, elas significam “o código de idioma / código de idioma padrão do meu sistema”, que é obtido por meio do Encoding.Default , e geralmente é o Windows-1252, mas podem ser outras localidades.

Há mais na minha página Unicode e dicas para depurar problemas Unicode .

O outro grande recurso de código é o unicode.org, que contém mais informações do que você poderá trabalhar – possivelmente o bit mais útil são os charts de código .

Algumas leituras para você começar em codificações de caracteres: Joel on Software: O Mínimo Absoluto Todo Desenvolvedor de Software Absolutamente, Positivamente Deve Saber Sobre Unicode e Conjuntos de Caracteres (Sem desculpas!)

By the way – ASP.NET não tem nada a ver com isso. As codificações são universais.

    Intereting Posts