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

votos
288

Qual é a diferença entre o Unicode, UTF8, UTF7, UTF16, UTF32, ASCII, e ANSIcodificações?

De que forma são estes útil para programadores?

Publicado 31/03/2009 em 07:02
fonte usuário
Em outras línguas...                            


2 respostas

votos
55

Alguns leitura para você começar na codificação de caracteres: Joel on Software: (Sem Desculpas) O desenvolvedor Absolute Minimum cada Software Absolutamente, Positivamente Precisa Saber Sobre Unicode e conjuntos de caracteres

Pelo caminho - ASP.NET não tem nada a ver com isso. Codificações são universais.

Respondeu 31/03/2009 em 07:10
fonte usuário

votos
398

Descendo sua lista:

  • " Unicode " não é uma codificação, embora, infelizmente, muita documentação imprecisa usa para se referir a qualquer codificação Unicode que determinado sistema utiliza por padrão. No Windows e Java, isso geralmente significa UTF-16; em muitos outros lugares, isso significa UTF-8. Corretamente, Unicode refere-se ao caráter abstrato fixou-se, não para qualquer codificação particular.
  • UTF-16 : 2 bytes por "unidade de código". Este é o formato nativo de cordas em .NET e, em geral no Windows e Java. Os valores fora do Basic Multilingual Plane (BMP) são codificados como pares substitutos. (Estes são relativamente raramente utilizada - que é um bom trabalho, como muito poucos desenvolvedores obtê-los bem, eu suspeito que eu duvido muito que eu..)
  • UTF-8 : codificação de comprimento variável, 1-4 bytes por ponto de código. Valores ASCII são codificados como ASCII utilizando um byte.
  • UTF-7 : Geralmente usado para codificação mail. Provavelmente, se você acha que precisa dele e você não está fazendo correio, você está errado. (Isso é apenas minha experiência de pessoas postando em newsgroups etc - e-mail fora, realmente não é amplamente utilizado em tudo.)
  • UTF-32 : Fixa codificação largura usando 4 bytes por ponto de código. Esta não é muito eficiente, mas facilita a vida fora do BMP. Eu tenho uma .NET Utf32Stringclasse como parte do meu MiscUtil biblioteca, você deve sempre quer. (Não foi muito exaustivamente testado, você mente.)
  • ASCII : codificação de byte único só usando a parte inferior 7 bits. (Pontos Unicode código 0-127.) Não acentos etc.
  • ANSI: Não há ninguém fixo codificação ANSI - há muitos deles. Normalmente, quando as pessoas dizem "ANSI" que significa "a localidade padrão / página de códigos para o meu sistema", que é obtido através Encoding.Default , e muitas vezes é o Windows-1252 , mas pode haver outras localidades.

Há mais na minha página Unicode e dicas para problemas de depuração Unicode .

O outro grande recurso de código é unicode.org que contém mais informações do que você nunca vai ser capaz de trabalhar o seu caminho através - possivelmente a pouco mais útil é os gráficos de código .

Respondeu 31/03/2009 em 07:15
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more