Respostas:
Codificação ANSI é um termo ligeiramente genérico usado para se referir à página de código padrão em um sistema, geralmente Windows. É mais conhecido como Windows-1252 em sistemas ocidentais / americanos. (Pode representar outras páginas de código do Windows em outros sistemas.) Essa é essencialmente uma extensão do conjunto de caracteres ASCII, pois inclui todos os caracteres ASCII com 128 códigos de caracteres adicionais. Essa diferença se deve ao fato de a codificação "ANSI" ser de 8 bits em vez de 7 bits, como é o ASCII (o ASCII quase sempre é codificado atualmente como bytes de 8 bits com o MSB definido como 0). Consulte o artigo para obter uma explicação de por que essa codificação é geralmente chamada de ANSI.
O nome "ANSI" é um nome impróprio, pois não corresponde a nenhum padrão ANSI real, mas o nome ficou bloqueado. ANSI não é o mesmo que UTF-8.
windows-1254
.
Tecnicamente, o ANSI deve ser o mesmo do US-ASCII. Refere-se ao padrão ANSI X3.4, que é simplesmente o ANSI versão ratificada do ASCII da organização . O uso dos caracteres do conjunto de bits superior não está definido no ASCII / ANSI, pois é um conjunto de caracteres de 7 bits.
No entanto, anos de uso indevido do termo pela comunidade DOS e subseqüentemente Windows deixaram seu significado prático como "a página de código do sistema de qualquer máquina que esteja sendo usada". A página de código do sistema também é conhecida como 'mbcs', uma vez que nos sistemas do Leste Asiático pode ser uma codificação de vários bytes por caractere. Algumas páginas de código podem até usar bytes limpos na parte superior como bytes finais em uma sequência multibyte, por isso nem é estritamente compatível com ASCII simples ... mas mesmo assim, ainda é chamado de "ANSI".
Nas configurações padrão dos EUA e da Europa Ocidental, “ANSI” é mapeado para a página de códigos 1252 do Windows. Isso não é o mesmo que ISO-8859-1 (embora seja bastante semelhante). Em outras máquinas, poderia ser qualquer outra coisa. Isso torna o "ANSI" totalmente inútil como um identificador de codificação externo.
A rigor, não existe codificação ANSI. Coloquialmente, o termo ANSI é usado para várias codificações diferentes:
Antes, a Microsoft, como todo mundo, usava conjuntos de caracteres de 7 bits e inventou os seus próprios quando lhes convinha, embora mantivessem o ASCII como um subconjunto principal. Então eles perceberam que o mundo havia migrado para codificações de 8 bits e que havia padrões internacionais por aí, como a família ISO-8859. Naqueles dias, se você queria se apossar de um padrão internacional e morar nos EUA, comprou-o do American National Standards Institute, ANSI, que republicou os padrões internacionais com marca e números próprios (isso é porque o governo dos EUA quer conformidade com os padrões americanos, e não internacionais). Então a cópia da ISO-8859 da Microsoft dizia "ANSI" na capa. E como a Microsoft não estava muito acostumada aos padrões da época, eles não • Perceba que a ANSI também publicou muitos outros padrões. Então, eles se referiram aos padrões da família ISO-8859 (e às variantes que eles inventaram, porque realmente não entendiam os padrões naquela época) pelo nome na capa, "ANSI", e ele chegou à Microsoft documentação do usuário e, portanto, para a comunidade de usuários. Isso foi há cerca de 30 anos, mas você ainda ouve o nome hoje.
ASCII apenas define uma página de código de 7 bits com 128 símbolos. O ANSI estende isso para 8 bits e há várias páginas de código diferentes para os símbolos 128 a 255.
A nomeação ANSI não está correta porque é realmente a norma ISO / IEC 8859 que define essas páginas de código. Veja ISO / IEC 8859 para referência. Existem 16 páginas de códigos ISO / IEC 8859-1 a ISO / IEC 8859-16.
O Windows-1252 é novamente baseado na ISO / IEC 8859-1, com algumas modificações principalmente no intervalo do controle C1 definido no intervalo de 128 a 159. A Wikipedia afirma que o Windows-1252 também é referido como ISO-8859-1 com um segundo hífen entre ISO e 8859. (Inacreditável! Quem faz algo assim?!?)
Basicamente "ANSI" refere-se à página de códigos herdada no Windows. Veja também um artigo de Raymond Chen sobre este tópico:
A origem disso vem do fato de que a página de código 1252 do Windows era originalmente baseada em um rascunho ANSI, que se tornou o Padrão ISO 8859-1.
Os primeiros 127 caracteres são idênticos ao ASCII na maioria das páginas de código, embora os caracteres superiores variem.
No entanto, ANSI não significa automaticamente CP1252 ou Latin 1.
Apesar de toda a confusão, você deve simplesmente evitar esses problemas hoje em dia e usar o Unicode.
Caso seu PC não seja um "Western" e você não saiba qual página de códigos é usada, consulte esta página: Referência da API do NLS (National Language Support)
[A Microsoft removeu esta referência, faça o formulário Referência de API do NLS (National Language Support) de arquivo da web
Ou você pode consultar seu registro:
C:\>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /f ACP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
ACP REG_SZ 1252
End of search: 1 match(es) found.
C:\>
Ao usar caracteres de byte único, o formato ASCII define os primeiros 127 caracteres. Os caracteres estendidos de 128-255 são definidos por várias páginas de código ANSI para permitir suporte limitado a outros idiomas. Para entender uma string codificada em ANSI, você precisa saber qual página de código ela usa.
Lembro-me de quando o texto "ANSI" se referia aos pseudo códigos de escape VT-100 utilizáveis no DOS por meio do driver ANSI.SYS para alterar o fluxo do fluxo de texto .... Provavelmente não é o que você está se referindo, mas se é o http: //en.wikipedia.org/wiki/ANSI_escape_code
ANSI (também conhecido como Windows-1252 / WinLatin1) é uma codificação de caracteres do alfabeto latino, bastante semelhante à ISO-8859-1 . Você pode dar uma olhada na Wikipedia .