unicode - que - utf-8 table html




Qual é a diferença entre Unicode e UTF-8? (6)

O desenvolvimento do Unicode teve como objetivo criar um novo padrão para mapear os caracteres na maioria das linguagens que estão sendo usadas atualmente, junto com outros caracteres que não são essenciais, mas que podem ser necessários para a criação do texto. O UTF-8 é apenas uma das muitas maneiras de codificar os arquivos, pois há muitas maneiras de codificar os caracteres dentro de um arquivo no Unicode.

Fonte:

http://www.differencebetween.net/technology/difference-between-unicode-and-utf-8/

Esta questão já tem uma resposta aqui:

Considerar:

É verdade que unicode=utf16 ?

Muitos estão dizendo que o Unicode é um padrão, não uma codificação, mas a maioria dos editores suporta salvar como codificação Unicode.


a maioria dos editores suportam salvar como codificação 'Unicode', na verdade.

Esta é uma má infelicidade perpetrada pelo Windows.

Como o Windows usa a codificação UTF-16LE internamente como o formato de armazenamento de memória para cadeias de caracteres Unicode, ela considera essa codificação natural do texto Unicode. No mundo do Windows, existem seqüências de caracteres ANSI (a página de códigos do sistema na máquina atual, sujeitas a total impossibilidade de uso) e há cadeias Unicode (armazenadas internamente como UTF-16LE).

Tudo isso foi inventado nos primórdios do Unicode, antes de percebermos que o UCS-2 não era suficiente e antes que o UTF-8 fosse inventado. É por isso que o suporte do Windows para UTF-8 é ruim.

Esse esquema de nomenclatura equivocado tornou-se parte da interface do usuário. Um editor de texto que usa o suporte de codificação do Windows para fornecer um intervalo de codificações descreverá automática e inadequadamente UTF-16LE como "Unicode" e UTF-16BE, se fornecido, como "Unicode big-endian".

(Outros editores que fazem codificações, como o Notepad ++, não têm esse problema.)

Se isso faz você se sentir melhor, as strings 'ANSI' não são baseadas em nenhum padrão ANSI.


Além do comentário de Trufa, o Unicode explicitamente não é o UTF-16. Quando eles estavam olhando pela primeira vez para o Unicode, especulou-se que um inteiro de 16 bits poderia ser suficiente para armazenar qualquer código, mas na prática isso acabou não sendo o caso. No entanto, o UTF-16 é outra codificação válida do Unicode - juntamente com as variantes de 8 bits e 32 bits - e acredito que seja a codificação que a Microsoft usa na memória em tempo de execução nos sistemas operacionais derivados do NT.


Como Rasmus afirma em seu artigo "A diferença entre UTF-8 e Unicode?" (link fixo):

Se fosse feita a pergunta "Qual é a diferença entre UTF-8 e Unicode?", Você responderia com confiança com uma resposta curta e precisa? Nestes dias de internacionalização, todos os desenvolvedores devem ser capazes de fazer isso. Suspeito que muitos de nós não entendemos esses conceitos tão bem quanto deveríamos. Se você acha que pertence a esse grupo, leia esta breve introdução aos conjuntos de caracteres e codificações.

Na verdade, comparar UTF-8 e Unicode é como comparar maçãs e laranjas:

UTF-8 é uma codificação - Unicode é um conjunto de caracteres

Um conjunto de caracteres é uma lista de caracteres com números exclusivos (esses números são às vezes chamados de "pontos de código"). Por exemplo, no conjunto de caracteres Unicode, o número de A é 41.

Uma codificação, por outro lado, é um algoritmo que traduz uma lista de números para binário, para que possa ser armazenado em disco. Por exemplo, o UTF-8 traduziria a sequência numérica 1, 2, 3, 4 assim:

00000001 00000010 00000011 00000100 

Nossos dados agora são traduzidos em binários e agora podem ser salvos em disco.

Todos juntos agora

Digamos que um aplicativo leia o seguinte no disco:

1101000 1100101 1101100 1101100 1101111 

O aplicativo sabe que esses dados representam uma cadeia Unicode codificada com UTF-8 e deve mostrar isso como texto para o usuário. Primeiro passo, é converter os dados binários em números. O aplicativo usa o algoritmo UTF-8 para decodificar os dados. Neste caso, o decodificador retorna isto:

104 101 108 108 111 

Como o aplicativo sabe que esta é uma string Unicode, pode assumir que cada número representa um caractere. Usamos o conjunto de caracteres Unicode para traduzir cada número para um caractere correspondente. A string resultante é "olá".

Conclusão

Então, quando alguém lhe pergunta "Qual é a diferença entre UTF-8 e Unicode?", Agora você pode responder com confiança de forma breve e precisa:

UTF-8 (Unicode Transformation Format) e Unicode não podem ser comparados. UTF-8 é uma codificação usada para traduzir números em dados binários. Unicode é um conjunto de caracteres usado para converter caracteres em números.


Não é tão simples assim.

O UTF-16 é uma codificação de largura variável de 16 bits. Simplesmente chamar algo "Unicode" é ambíguo, já que "Unicode" refere-se a um conjunto inteiro de padrões para codificação de caracteres. Unicode não é uma codificação!

http://en.wikipedia.org/wiki/Unicode#Unicode_Transformation_Format_and_Universal_Character_Set

e, claro, o obrigatório Joel On Software - O Absoluto Mínimo Todo Desenvolvedor de Software Absolutamente, Positivamente Deve Saber Sobre o Unicode e o Conjuntos de Caracteres (Sem Desculpas!) link.


UTF-16 e UTF-8 são codificações de Unicode. Ambos são Unicode; um não é mais Unicode do que o outro.

Não deixe que um infeliz artefato histórico da Microsoft confunda você.





utf-8