AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1472284
Accepted
tripleee
tripleee
Asked: 2019-08-18 02:40:27 +0800 CST2019-08-18 02:40:27 +0800 CST 2019-08-18 02:40:27 +0800 CST

A qual padrão ANSI Joel se refere?

  • 772

Eu estava relendo a postagem clássica do blog de Joel Spolsky O Mínimo Absoluto que Todo Desenvolvedor de Software Absolutamente, Positivamente Deve Saber Sobre Unicode e Conjuntos de Caracteres (Sem Desculpas!) e notei esta passagem:

Eventualmente, este OEM gratuito foi codificado no padrão ANSI (ênfase minha). No padrão ANSI, todos concordavam sobre o que fazer abaixo de 128, que era praticamente o mesmo que ASCII, mas havia muitas maneiras diferentes de lidar com os caracteres de 128 em diante, dependendo de onde você morava. Esses diferentes sistemas foram chamados de páginas de código.

A qual padrão ANSI este texto se refere? Para ter certeza, o American National Standards Institute publicou vários padrões (afinal, é isso que eles realmente fazem), mas não consegui descobrir qual deles.

Meu palpite mais próximo sobre o que isso pode significar é que isso realmente fala sobre ISO-8859, e talvez este documento tenha começado como um padrão americano antes de ser adotado como um padrão internacional; mas isso não faz sentido no contexto da padronização de "páginas de código" e conjuntos de caracteres "OEM".

O artigo da página de código da Wikipédia menciona um padrão IBM e observa que a IANA mantém um registro de mapeamentos de página de código, mas, obviamente, nenhum deles é ANSI.

Meu entendimento é que o ANSI não padronizou nenhum conjunto moderno de caracteres de 8 bits e que "ANSI" neste contexto geralmente se refere à terminologia confusa agora abandonada da Microsoft (onde "ANSI" foi aparentemente usado para significar algo como o atual página de código selecionada).

Existe um padrão que estou negligenciando? Ou há apenas (suspiro) um erro no blog de Joel?

standards character-encoding
  • 4 4 respostas
  • 221 Views

4 respostas

  • Voted
  1. harrymc
    2019-08-24T09:12:17+08:002019-08-24T09:12:17+08:00

    Este é um quebra-cabeça, então vamos reunir todos os fatos conhecidos. Nos estamos procurando por:

    • Um padrão ANSI
    • Sobre conjuntos de caracteres
    • Que especificou os primeiros 128 pontos de código
    • E foi a base para páginas de código e todos os seguintes padrões para conjuntos de caracteres.

    O resultado para mim é apenas um - o padrão ASCII . Acredito que este foi o primeiro padrão do ANSI a especificar os primeiros 128 pontos de código e, na verdade, também o último.

    Embora o ASCII tenha evoluído em detalhes posteriormente, seu principal desenvolvimento começou em 1963. Esse padrão foi desenvolvido pela filial americana da International Organization for Standardization (ISO), que é a ANSI. Como esse padrão omitia referência a caracteres não americanos, e como as páginas de código que se seguiam e tentavam responder a essa pergunta eram uma verdadeira bagunça desorganizada, podendo concordar apenas com a parte ASCII, o trabalho de padronização foi assumido pelo organização internacional da própria ISO.

    Historicamente falando, o padrão ISO/IEC 8859 chegou entre o ASCII e as páginas de código, mas não era um padrão ANSI, elaborado pela ISO.

    "Páginas de código ANSI" era um nome impróprio para páginas de código do Windows criadas pela Microsoft e não pelo ANSI. Uma variante era a página de código do Windows-1252 , que mais tarde veio a ser conhecida como ISO/IEC 8859-1 .

    A história real dos conjuntos de caracteres é bastante complicada, e um extenso trabalho de detetive seria necessário para estabelecer cronogramas, influências cruzadas e padrões ou definições de fato resultantes. Mas tudo foi iniciado pelo ASCII, que criou a base para toda evolução futura culminando em Unicode e UTF-8.

    • 1
  2. davolfman
    2019-08-24T16:21:08+08:002019-08-24T16:21:08+08:00

    De acordo com a página da Wikipédia, os caracteres de controle C0 e C1 são definidos em ANSI x3.4.

    Isso inclui as sequências de escape para formatação de texto estendida que são usadas pela ISO 2022 e ISO 8859 para permitir conjuntos de caracteres internacionais de vários bytes.

    Por exemplo, ESC $ @ e ESC $ B alternam para diferentes codificações japonesas de 2 bytes, enquanto ESC ( B retorna para US-ASCII. Esses podem ser padrões ISO (ou ECMA), mas usam os códigos de controle ANSI, então provavelmente é um equívoco parcial.

    • -1
  3. Best Answer
    tripleee
    2019-08-27T21:12:30+08:002019-08-27T21:12:30+08:00

    Sem a contribuição de Joel, não podemos ter certeza, mas com base nas outras tentativas de resposta aqui e nas falhas que percebo nelas, deixe-me apresentar o que considero uma especulação óbvia e simples:

    Não há nenhum padrão ANSI real aqui, e Joel está encobrindo as coisas.

    O que exatamente está sendo resumido e possivelmente misturado aqui é definitivamente menos certo, mas meu palpite é que ele está falando sobre o desenvolvimento de páginas de código do Windows, que por um tempo foram chamadas de "páginas de código ANSI" pela Microsoft, embora nunca era qualquer conexão tangível com o American National Standards Institute, possivelmente fora de um esforço malsucedido para padronizar a página de código 1252 do Windows como um "ASCII estendido" com vários caracteres acentuados para alguns idiomas da Europa Ocidental e símbolos úteis para composição e expressões matemáticas simples. De acordo com algumas fontes, isso é o que resultou no ISO/IEC 8859-1 e, eventualmente, na família maior de padrões ISO 8859 para conjuntos de caracteres de 8 bits para várias regiões (consulte tambémECMA-94 ).

    Para que conste, o ASA e depois ANSI Committee X3 foi responsável pelo padrão ASCII (ASA X3.4, depois ANSI X3.4, depois ISO 646), bem como pelo padrão X3.64 para sequências de controle de tela ASCII para terminais de exibição. Publicações notáveis ​​deste comitê no final dos anos 1980 incluem uma proposta para a linguagem C e algo chamado "Pascal estendido", bem como a interface de hardware SCSI, mas não consegui encontrar nada relacionado a conjuntos de caracteres desse período.

    • -1
  4. normbowler
    2019-08-24T15:16:13+08:002019-08-24T15:16:13+08:00

    https://en.wikipedia.org/wiki/ASCII#History

    De acordo com esta lista, o primeiro padrão ANSI definindo ASCII foi o ANSI X3.4-1977.

    • -4

relate perguntas

  • Em cmd.exe com a página de códigos 437, por que os caracteres cujo "número" é maior que 127 são anexados a um ┬ ao usar o tipo?

  • Quando algo é um padrão “X.*”, o que esse “X.*” representa?

  • Como o notepad.exe determina a codificação de caracteres?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve