ASCII

Da Wikipédia, a enciclopédia livre
Ir para navegação Pular para pesquisar

ASCII
USASCII code chart.png
Gráfico ASCII de um manual de impressora pré-1972
MIME / IANAus-ascii
Apelido)ISO-IR-006, [1] ANSI_X3.4-1968, ANSI_X3.4-1986, ISO_646.irv: 1991, ISO646-US, us, IBM367, cp367 [2]
Línguas)inglês
ClassificaçãoISO 646 series
Extensões
Precedido porITA 2 , FIELDATA
Sucedido porISO 8859 , Unicode

ASCII ( / æ s k i / ( escute ) Sobre este som ASS -kee ), [3] : 6 abreviado de American Standard Code Information Interchange , é uma codificação de caracteres padrão para a comunicação eletrônica. Os códigos ASCII representam texto em computadores, equipamentos de telecomunicações e outros dispositivos. A maioria dos esquemas de codificação de caracteres modernos é baseada em ASCII, embora eles suportem muitos caracteres adicionais.

A Internet Assigned Numbers Authority (IANA) prefere o nome US-ASCII para esta codificação de caracteres. [2]

ASCII é um dos marcos do IEEE .

Visão geral

ASCII foi desenvolvido a partir do código telegráfico . Seu primeiro uso comercial foi como um código de teleimpressora de sete bits promovido pela Bell data services. O trabalho no padrão ASCII começou em maio de 1961, com a primeira reunião do subcomitê X3.2 da American Standards Association (ASA) (agora American National Standards Institute ou ANSI). A primeira edição do padrão foi publicada em 1963, [4] [5] passou por uma grande revisão durante 1967, [6] [7] e experimentou sua atualização mais recente em 1986. [8]Comparado aos códigos telegráficos anteriores, o código de Bell proposto e ASCII foram solicitados para uma classificação mais conveniente (isto é, alfabetização) de listas e recursos adicionais para dispositivos diferentes de teleimpressoras. [ citação necessária ]

O uso do formato ASCII para Network Interchange foi descrito em 1969. [9] Esse documento foi formalmente elevado a um padrão da Internet em 2015. [10]

Originalmente baseado no alfabeto inglês , o ASCII codifica 128 caracteres especificados em inteiros de sete bits, conforme mostrado pelo gráfico ASCII acima. [11] Noventa e cinco dos caracteres codificados são imprimíveis: incluem os dígitos de 0 a 9 , letras minúsculas de a a z , letras maiúsculas de A a Z e símbolos de pontuação . Além disso, a especificação ASCII original incluía 33 códigos de controle de não impressão originados de máquinas de teletipo ; a maioria deles agora está obsoleta, [12]embora alguns ainda sejam comumente usados, como o retorno de carro , alimentação de linha e códigos de tabulação .

Por exemplo, i minúsculo seria representado na codificação ASCII pelo binário 1101001 = hexadecimal 69 ( i é a nona letra) = decimal 105.

História

ASCII (1963). Imagens de controle de controles equivalentes são mostradas onde existem, ou um ponto cinza caso contrário.

O American Standard Code for Information Interchange (ASCII) foi desenvolvido sob os auspícios de um comitê da American Standards Association (ASA), denominado comitê X3, por seu subcomitê X3.2 (posteriormente X3L2) e, posteriormente, pelo X3 desse subcomitê. 2.4 grupo de trabalho (agora INCITS ). O ASA tornou-se o Instituto de Padrões dos Estados Unidos da América (USASI) [3] : 211 e, finalmente, o Instituto Nacional de Padrões Americanos (ANSI).

Com os outros caracteres especiais e códigos de controle preenchidos, o ASCII foi publicado como ASA X3.4-1963, [5] [13] deixando 28 posições de código sem qualquer significado atribuído, reservadas para padronização futura, e um código de controle não atribuído. [3] : 66, 245 Houve algum debate na época se deveria haver mais caracteres de controle em vez do alfabeto minúsculo. [3] : 435 A indecisão não durou muito: durante maio de 1963, o Grupo de Trabalho CCITT sobre o Novo Alfabeto Telegráfico propôs atribuir caracteres minúsculos aos palitos [a] [14] 6 e 7, [15] e Organização Internacional de PadronizaçãoTC 97 SC 2 votou em outubro para incorporar a mudança em seu projeto de norma. [16] O grupo de trabalho X3.2.4 votou sua aprovação para a mudança para ASCII em sua reunião de maio de 1963. [17] Localizar as letras minúsculas nos palitos [a] [14] 6 e 7 fez com que os caracteres diferissem no padrão de bits das maiúsculas por um único bit, o que simplificou a correspondência de caracteres que não diferenciam maiúsculas de minúsculas e a construção de teclados e impressoras.

O comitê X3 fez outras mudanças, incluindo outros novos caracteres (a chave e os caracteres da barra vertical ), [18] renomeando alguns caracteres de controle (SOM se tornou o início do cabeçalho (SOH)) e movendo ou removendo outros (RU foi removido). [3] : 247–248 ASCII foi subsequentemente atualizado como USAS X3.4-1967, [6] [19] então USAS X3.4-1968, ANSI X3.4-1977 e, finalmente, ANSI X3.4-1986. [8] [20]

Revisões do padrão ASCII:

No padrão X3.15, o comitê X3 também abordou como o ASCII deve ser transmitido (o bit menos significativo primeiro), [3] : 249–253 [26] e como deve ser gravado em fita perfurada. Eles propuseram um padrão de 9 trilhas para fita magnética e tentaram lidar com alguns formatos de cartão perfurado .

Considerações de design

Largura de bit

O subcomitê X3.2 projetou ASCII com base nos sistemas de codificação teleimpressora anteriores. Como outras codificações de caracteres , ASCII especifica uma correspondência entre padrões de bits digitais e símbolos de caracteres (ou seja, grafemas e caracteres de controle ). Isso permite que os dispositivos digitais se comuniquem entre si e processem, armazenem e comuniquem informações orientadas a caracteres, como a linguagem escrita. Antes do ASCII ser desenvolvido, as codificações em uso incluíam 26 caracteres alfabéticos , 10 dígitos numéricos e de 11 a 25 símbolos gráficos especiais. Para incluir tudo isso, e controlar caracteres compatíveis com oComité Consultatif International Téléphonique et Télégraphique (CCITT) Padrão do Alfabeto Telegráfico Internacional No. 2 (ITA2) de 1924, [27] [28] FIELDATA (1956 [ carece de fontes ] ), e EBCDIC inicial (1963), mais de 64 códigos foram exigidos para ASCII.

O ITA2, por sua vez, foi baseado no código telegráfico de 5 bits que Émile Baudot inventou em 1870 e patenteou em 1874. [28]

O comitê debateu a possibilidade de uma função shift (como no ITA2 ), que permitiria que mais de 64 códigos fossem representados por um código de seis bits . Em um código deslocado, alguns códigos de caractere determinam escolhas entre opções para os seguintes códigos de caractere. Ele permite a codificação compacta, mas é menos confiável para a transmissão de dados , pois um erro na transmissão do código de deslocamento normalmente torna uma grande parte da transmissão ilegível. O comitê de padrões decidiu contra a mudança e, portanto, o ASCII exigia pelo menos um código de sete bits. [3] : 215, 236 §4

O comitê considerou um código de oito bits, uma vez que oito bits ( octetos ) permitiriam que dois padrões de quatro bits codificassem com eficiência dois dígitos com decimais em código binário . No entanto, seria necessário que toda a transmissão de dados enviasse oito bits, quando sete seriam suficientes. O comitê votou para usar um código de sete bits para minimizar os custos associados à transmissão de dados. Como a fita perfurada na época podia gravar oito bits em uma posição, ela também permitia um bit de paridade para verificação de erro, se desejado. [3] : 217, 236 §5 Máquinas de oito bits (com octetos como o tipo de dados nativo) que não usavam verificação de paridade normalmente definiam o oitavo bit como 0. [29]

Organização interna

O próprio código foi padronizado de forma que a maioria dos códigos de controle estivessem juntos e todos os códigos gráficos estivessem juntos, para facilitar a identificação. Os primeiros dois, chamados bastões ASCII [a] [14] (32 posições), foram reservados para caracteres de controle. [3] : 220, 236 8, 9) O caractere "espaço" tinha que vir antes dos gráficos para facilitar a classificação , então ele se tornou a posição 20 hex ; [3] : 237 §10 pela mesma razão, muitos sinais especiais comumente usados ​​como separadores foram colocados antes dos dígitos. O comitê decidiu que era importante oferecer suporte a alfabetos de 64 caracteres maiúsculos , e escolheu padronizar ASCII para que pudesse ser reduzido facilmente a um conjunto de códigos gráficos de 64 caracteres utilizáveis, [3] : 228, 237 §14, como foi feito no código DEC SIXBIT (1963). As letras minúsculas, portanto, não foram intercaladas com maiúsculas. Para manter as opções disponíveis para letras minúsculas e outros gráficos, os códigos especiais e numéricos foram organizados antes das letras, e a letra A foi colocada na posição 41 hex para coincidir com o rascunho do padrão britânico correspondente. [3] : 238 §18 Os dígitos 0-9 são prefixados com 011, mas os 4 bits restantes correspondem aos seus respectivos valores em binário, fazendo a conversão comDecimal codificado binário direto.

Muitos dos caracteres não alfanuméricos foram posicionados para corresponder à sua posição deslocada nas máquinas de escrever; uma sutileza importante é que eram baseadas em máquinas de escrever mecânicas , não elétricas . [30] As máquinas de escrever mecânicas seguiram o padrão estabelecido pela Remington No. 2 (1878), a primeira máquina de escrever com uma tecla shift, e os valores deslocados de 23456789-were "#$%_&'() - as primeiras máquinas de escrever omitiam 0 e 1 , usando O (letra maiúscula o ) e l (letra L minúscula ), mas os pares 1!e 0)se tornaram padrão quando 0 e 1 tornaram-se comuns. Assim, em ASCII!"#$%foram colocados no segundo stick, [a] [14] posições 1–5, correspondendo aos dígitos 1–5 no stick adjacente. [a] [14] Os parênteses não podiam corresponder a 9 e 0 , no entanto, porque o lugar correspondente a 0 foi ocupado pelo caractere de espaço. Isso foi acomodado removendo _(sublinhado) de 6 e deslocando os caracteres restantes, que correspondiam a muitas máquinas de escrever europeias que colocavam os parênteses com 8 e 9 . Essa discrepância com as máquinas de escrever levou a teclados com pares de bits , principalmente o modelo de teletipo 33, que usava o layout deslocado para a esquerda correspondente ao ASCII, não às máquinas de escrever mecânicas tradicionais. As máquinas de escrever elétricas, notadamente a IBM Selectric (1961), usaram um layout um pouco diferente que se tornou padrão em computadores - seguindo o IBM PC (1981), especialmente o Modelo M (1984) - e, portanto, os valores de deslocamento para símbolos em teclados modernos não correspondem tão próximo da tabela ASCII quanto os teclados anteriores. O /?par também data do nº 2, e os ,< .>pares foram usados ​​em alguns teclados (outros, incluindo o nº 2, não mudavam ,(vírgula) ou .(ponto final) para que pudessem ser usados ​​em maiúsculas sem mudança). No entanto, o ASCII divide o;:par (datando de No. 2), e símbolos matemáticos reorganizados (convenções variadas, comumente -* =+) para :* ;+ -=.

Alguns caracteres comuns não foram incluídos, notavelmente ½¼¢, enquanto ^`~foram incluídos como diacríticos para uso internacional e <>para uso matemático, junto com os caracteres de linha simples \|(além de comum /). O símbolo @ não foi usado na Europa continental e o comitê esperava que ele fosse substituído por um À acentuado na variação francesa, então o @ foi colocado na posição 40 hex , logo antes da letra A. [3] : 243

Os códigos de controle considerados essenciais para a transmissão de dados foram o início da mensagem (SOM), o final do endereço (EOA), o final da mensagem (EOM), o final da transmissão (EOT), "quem é você?" (WRU), "e você?" (RU), um controle de dispositivo reservado (DC0), inatividade síncrona (SYNC) e reconhecimento (ACK). Eles foram posicionados para maximizar a distância de Hamming entre seus padrões de bits. [3] : 243-245

Ordem do personagem

A ordem do código ASCII também é chamada de ordem ASCIIbética . [31] A coleta de dados às vezes é feita nesta ordem, em vez da ordem alfabética "padrão" ( seqüência de classificação ). Os principais desvios na ordem ASCII são:

  • Todas as letras maiúsculas vêm antes das letras minúsculas; por exemplo, "Z" precede "a"
  • Os dígitos e muitos sinais de pontuação vêm antes das letras

Uma ordem intermediária converte letras maiúsculas em minúsculas antes de comparar os valores ASCII.

Grupos de personagens

Personagens de controle

ASCII reserva os primeiros 32 códigos (números de 0 a 31 decimais) para caracteres de controle : códigos originalmente destinados não a representar informações imprimíveis, mas sim a controlar dispositivos (como impressoras ) que fazem uso de ASCII ou fornecer meta-informações sobre dados fluxos como os armazenados em fita magnética.

Por exemplo, o caractere 10 representa a função "avanço de linha" (que faz com que a impressora avance seu papel) e o caractere 8 representa "retrocesso". RFC  2822 refere-se a caracteres de controle que não incluem retorno de carro, alimentação de linha ou espaço em branco como caracteres de controle sem espaço em branco. [32] Exceto para os caracteres de controle que prescrevem formatação orientada a linha elementar, ASCII não define nenhum mecanismo para descrever a estrutura ou aparência do texto dentro de um documento. Outros esquemas, como linguagens de marcação , página de endereço e layout e formatação do documento.

O padrão ASCII original usava apenas frases descritivas curtas para cada caractere de controle. A ambigüidade que isso causou às vezes era intencional, por exemplo, quando um caractere seria usado de forma ligeiramente diferente em um link de terminal e em um fluxo de dados , e às vezes acidental, por exemplo, com o significado de "excluir".

Provavelmente, o dispositivo mais influente na interpretação desses caracteres foi o Teletype Model 33 ASR, que era um terminal de impressão com uma opção de leitor / perfurador de fita de papel disponível . A fita de papel era um meio muito popular para armazenamento de programas de longo prazo até a década de 1980, menos custosa e de certa forma menos frágil do que a fita magnética. Em particular, as atribuições da máquina Teletype Model 33 para os códigos 17 (Control-Q, DC1, também conhecido como XON), 19 (Control-S, DC3, também conhecido como XOFF) e 127 ( Excluir) tornaram-se padrões de facto. O Modelo 33 também se destacou por interpretar literalmente a descrição do Controle-G (código 7, BEL, significando alertar audivelmente o operador), pois a unidade continha uma campainha real que tocou quando recebeu um caractere BEL. Como o teclado para a tecla O também exibia um símbolo de seta para a esquerda (de ASCII-1963, que tinha esse caractere em vez de sublinhado ), um uso incompatível do código 15 (Control-O, Shift In) interpretado como "excluir caractere anterior" também foi adotado por muitos sistemas antigos de compartilhamento de tempo, mas acabou sendo negligenciado.

Quando um ASR Teletipo 33 equipado com leitor de fita de papel automático recebia um Control-S (XOFF, uma abreviatura de transmit off), fazia com que o leitor de fita parasse; receber Control-Q (XON, "transmitir em") fazia com que o leitor de fita reiniciasse. Essa técnica foi adotada por vários dos primeiros sistemas operacionais de computador como um sinal de "aperto de mão" avisando o remetente para interromper a transmissão devido ao estouro iminente; persiste até hoje em muitos sistemas como uma técnica de controle de saída manual. Em alguns sistemas, o Control-S mantém seu significado, mas o Control-Q é substituído por um segundo Control-S para retomar a saída. O 33 ASR também pode ser configurado para empregar Control-R (DC2) e Control-T (DC4) para iniciar e parar a perfuração da fita; em algumas unidades equipadas com esta função,a rotulação do caractere de controle correspondente na tecla acima da letra era TAPE eTAPE respectivamente. [33]

Apagar & Backspace

O teletipo não conseguia mover a cabeça para trás, por isso não colocou uma tecla no teclado para enviar um BS (backspace). Em vez disso, havia uma chave marcada RUB OUTque enviava o código 127 (DEL). O objetivo desta chave era apagar erros em uma fita de papel datilografada à mão: o operador tinha que apertar um botão no punção de fita para recuá-la e, em seguida, digitar o apagamento, que perfurava todos os furos e substituía o erro por um caractere que foi concebido para ser ignorado. [34] Teletipos eram comumente usados ​​para os computadores mais baratos da Digital Equipment Corporation , então esses sistemas tinham que usar a chave disponível e, portanto, o código DEL para apagar o caractere anterior. [35] [36]Por causa disso, os terminais de vídeo DEC (por padrão) enviaram o código DEL para a tecla marcada "Backspace", enquanto a tecla marcada "Delete" enviou uma sequência de escape, enquanto muitos outros terminais enviaram BS para a tecla Backspace. O driver do terminal Unix só poderia usar um código para apagar o caractere anterior, que poderia ser definido como BS ou DEL, mas não ambos, resultando em um longo período de aborrecimento onde os usuários tinham que corrigi-lo dependendo de qual terminal estavam usando (shells que permitem edição de linha, como ksh , bash e zsh , compreendem ambos). A suposição de que nenhuma chave enviou um BS fez com que Control + H fosse usado para outros propósitos, como o comando de prefixo "help" no GNU Emacs . [37]

Fuga

Muitos outros códigos de controle receberam significados bastante diferentes de seus originais. O caractere de "escape" (ESC, código 27), por exemplo, foi originalmente planejado para permitir o envio de outros caracteres de controle como literais em vez de invocar seu significado. Este é o mesmo significado de "escape" encontrado em codificações de URL, strings de linguagem C e outros sistemas onde certos caracteres têm um significado reservado. Com o tempo, esse significado foi cooptado e, eventualmente, alterado. No uso moderno, um ESC enviado para o terminal geralmente indica o início de uma sequência de comando, geralmente na forma de um chamado " código de escape ANSI " (ou, mais apropriadamente, um " Introdutor de Sequência de Controle") de ECMA-48 (1972) e seus sucessores, começando com ESC seguido por um caractere" ["(colchete esquerdo). Um ESC enviado do terminal é mais frequentemente usado como um caractere fora de banda usado para encerrar uma operação, como nos editores de texto TECO e vi . Na interface gráfica do usuário (GUI) e nos sistemas de janelas , o ESC geralmente faz com que um aplicativo aborte sua operação atual ou saia (finalize) completamente.

Fim da linha

A ambigüidade inerente de muitos caracteres de controle, combinada com seu uso histórico, criou problemas ao transferir arquivos de "texto simples" entre sistemas. O melhor exemplo disso é o problema de nova linha em vários sistemas operacionais . As máquinas de teletipo exigiam que uma linha de texto terminasse com "Retorno de carro" (que move o cabeçote de impressão para o início da linha) e "Alimentação de linha" (que avança o papel uma linha sem mover o cabeçote de impressão). O nome "Carriage Return" vem do fato de que em uma máquina de escrever manuala carruagem que segurava o papel se moveu enquanto a posição onde as barras de tipos batiam na fita permaneceu parada. Todo o carro teve que ser empurrado (retornado) para a direita para posicionar a margem esquerda do papel para a próxima linha.

Os sistemas operacionais DEC ( OS / 8 , RT-11 , RSX-11 , RSTS , TOPS-10 , etc.) usavam ambos os caracteres para marcar o fim de uma linha para que o dispositivo de console (originalmente máquinas de teletipo ) funcionasse. Na época em que os chamados "TTYs de vidro" (mais tarde chamados de CRTs ou terminais) surgiram, a convenção estava tão bem estabelecida que a compatibilidade com versões anteriores exigia a continuação da convenção. Quando Gary Kildall criado CP / M foi inspirado por algumas convenções de interface de linha de comando utilizados em dezembro de RT-11 . Até a introdução do PC DOS em 1981, a IBMnão tiveram nenhuma participação nisso porque seus sistemas operacionais da década de 1970 usavam EBCDIC em vez de ASCII e eram orientados para entrada de cartão perfurado e saída de impressora de linha em que o conceito de retorno de carro não fazia sentido. O PC DOS da IBM (também comercializado como MS-DOS pela Microsoft) herdou a convenção em virtude de ser vagamente baseado no CP / M, [38] e o Windows a herdou do MS-DOS.

Infelizmente, exigir dois caracteres para marcar o final de uma linha introduz complexidade desnecessária e questões sobre como interpretar cada caractere quando encontrado sozinho. Para simplificar as questões , os fluxos de dados de texto simples , incluindo arquivos, no Multics [39] usavam o feed de linha (LF) sozinho como um terminador de linha. Unix e sistemas semelhantes ao Unix, e sistemas Amiga , adotaram esta convenção da Multics. O Macintosh OS , Apple DOS e ProDOS originais , por outro lado, usavam o retorno de carro (CR) sozinho como um terminador de linha; no entanto, como a Apple substituiu esses sistemas operacionais pelo macOS baseado em Unixsistema operacional, eles agora usam alimentação de linha (LF) também. O Radio Shack TRS-80 também usava um CR solitário para encerrar linhas.

Os computadores conectados à ARPANET incluíam máquinas que executam sistemas operacionais como TOPS-10 e TENEX usando terminações de linha CR-LF, máquinas que executam sistemas operacionais como Multics usando terminações de linha LF e máquinas que executam sistemas operacionais como OS / 360 que representam linhas como uma contagem de caracteres seguida pelos caracteres da linha e que usava EBCDIC em vez de ASCII. O protocolo Telnet definiu um ASCII " Terminal Virtual de Rede"(NVT), para que as conexões entre hosts com diferentes convenções de terminação de linha e conjuntos de caracteres possam ser suportadas pela transmissão de um formato de texto padrão pela rede. O Telnet usou ASCII junto com terminações de linha CR-LF, e o software usando outras convenções traduziria entre as convenções locais e da NVT. [40] o File Transfer Protocol adotado o protocolo Telnet, incluindo o uso da Virtual Network Terminal, para uso durante a transmissão de comandos e transferência de dados no modo ASCII padrão. [41] [42] Isso adiciona complexidade para implementações desses protocolos, e para outros protocolos de rede, como aqueles usados ​​para e-mail e a World Wide Web, em sistemas que não usam a convenção de terminação de linha CR-LF da NVT. [43][44]

Fim do arquivo / fluxo

O monitor PDP-6, [35] e seu sucessor PDP-10 TOPS-10, [36] usaram Control-Z (SUB) como uma indicação de fim de arquivo para entrada de um terminal. Alguns sistemas operacionais, como CP / M, rastreiam o comprimento do arquivo apenas em unidades de blocos de disco e usam Control-Z para marcar o final do texto real no arquivo. [45] Por essas razões, EOF, ou fim de arquivo , foi usado coloquialmente e convencionalmente como um acrônimo de três letras para Control-Z em vez de SUBstitute. O código de fim de texto ( ETX ), também conhecido como Control-C , era inapropriado por vários motivos, enquanto usar Z como código de controle para encerrar um arquivo é análogo a encerrar o alfabeto e serve como um método muito convenienteajuda mnemônica . Uma convenção historicamente comum e ainda prevalente usa a convenção de código ETX para interromper e parar um programa por meio de um fluxo de dados de entrada, geralmente de um teclado.

Na biblioteca C e nas convenções do Unix , o caractere nulo é usado para encerrar strings de texto ; tais strings terminadas em nulo podem ser conhecidas em abreviatura como ASCIZ ou ASCIIZ, onde aqui Z significa "zero".

Gráfico de código de controle

Binário Out Dez Hex Abreviação [b] [c] [d] Nome (1967)
1963 1965 1967
000 0000 000 0 00 NULO NUL ^ @ \ 0 Nulo
000 0001 001 1 01 SOM SOH ^ A Início do rumo
000 0010 002 2 02 EOA STX ^ B Início do Texto
000 0011 003 3 03 EOM ETX ^ C Fim do Texto
000 0100 004 4 04 EOT ^ D Fim da Transmissão
000 0101 005 5 05 WRU ENQ ^ E Investigação
000 0110 006 6 06 RU ACK ^ F Reconhecimento
000 0111 007 7 07 SINO BEL ^ G \uma Sino
000 1000 010 8 08 FE0 BS ^ H \ b Backspace [e] [f]
000 1001 011 9 09 HT / SK HT ^ I \ t Guia horizontal [g]
000 1010 012 10 0A LF ^ J \ n Alimentação de linha
000 1011 013 11 0B VTAB VT ^ K \ v Guia Vertical
000 1100 014 12 0C FF ^ L \ f Feed de formulário
000 1101 015 13 0D CR ^ M \ r Retorno de carro [h]
000 1110 016 14 0E TÃO ^ N Shift Out
000 1111 017 15 0F SI ^ O Mudar para dentro
001 0000 020 16 10 DC0 DLE ^ P Escape do link de dados
001 0001 021 17 11 DC1 ^ Q Controle de dispositivo 1 (geralmente XON )
001 0010 022 18 12 DC2 ^ R Controle de dispositivo 2
001 0011 023 19 13 DC3 ^ S Controle de dispositivo 3 (frequentemente XOFF )
001 0100 024 20 14 DC4 ^ T Controle de dispositivo 4
001 0101 025 21 15 ERRAR NAK ^ U Reconhecimento Negativo
001 0110 026 22 16 SINCRONIZAR SYN ^ V Inativo Síncrono
001 0111 027 23 17 LEM ETB ^ W Fim do bloco de transmissão
001 1000 030 24 18 S0 POSSO ^ X Cancelar
001 1001 031 25 19 S1 EM ^ Y Fim do Meio
001 1010 032 26 1A S2 WL SUB ^ Z Substituto
001 1011 033 27 1B S3 ESC ^ [ \ e [i] Escape [j]
001 1100 034 28 1C S4 FS ^ \ Separador de Arquivo
001 1101 035 29 1D S5 GS ^] Separador de Grupo
001 1110 036 30 1E S6 RS ^^ [k] Separador de Registro
001 1111 037 31 1F S7 nós ^ _ Separador de Unidade
111 1111 177 127 7F DEL ^? Excluir [l] [f]

Outras representações podem ser usadas por equipamentos especializados, por exemplo, gráficos ISO 2047 ou números hexadecimais .

Caracteres imprimíveis

Os códigos de 20 hex a 7E hex , conhecidos como caracteres imprimíveis, representam letras, dígitos, sinais de pontuação e alguns símbolos diversos. Existem 95 caracteres imprimíveis no total. [m]

Código 20 hex , o caractere "espaço" , denota o espaço entre as palavras, conforme produzido pela barra de espaço de um teclado. Como o caractere de espaço é considerado um gráfico invisível (em vez de um caractere de controle) [3] : 223 [46], ele é listado na tabela abaixo em vez de na seção anterior.

Código hexadecimal 7F corresponde ao caractere de controle "delete" (DEL) não imprimível e, portanto, é omitido neste gráfico; ele é abordado no gráfico da seção anterior. As versões anteriores do ASCII usavam a seta para cima em vez do acento circunflexo ( hex 5E ) e a seta para a esquerda em vez do sublinhado ( hex 5F ). [5] [47]

Binário Out Dez Hex Glifo
1963 1965 1967
010 0000 040 32 20  espaço
010 0001 041 33 21 !
010 0010 042 34 22 "
010 0011 043 35 23 #
010 0100 044 36 24 $
010 0101 045 37 25 %
010 0110 046 38 26 E
010 0111 047 39 27 '
010 1000 050 40 28 (
010 1001 051 41 29 )
010 1010 052 42 2A *
010 1011 053 43 2B +
010 1100 054 44 2C ,
010 1101 055 45 2D -
010 1110 056 46 2E .
010 1111 057 47 2F /
011 0000 060 48 30 0
011 0001 061 49 31 1
011 0010 062 50 32 2
011 0011 063 51 33 3
011 0100 064 52 34 4
011 0101 065 53 35 5
011 0110 066 54 36 6
011 0111 067 55 37 7
011 1000 070 56 38 8
011 1001 071 57 39 9
011 1010 072 58 3A :
011 1011 073 59 3B ;
011 1100 074 60 3C <
011 1101 075 61 3D =
011 1110 076 62 3E >
011 1111 077 63 3F ?
100 0000 100 64 40 @ ` @
100 0001 101 65 41 UMA
100 0010 102 66 42 B
100 0011 103 67 43 C
100 0100 104 68 44 D
100 0101 105 69 45 E
100 0110 106 70 46 F
100 0111 107 71 47 G
100 1000 110 72 48 H
100 1001 111 73 49 eu
100 1010 112 74 4A J
100 1011 113 75 4B K
100 1100 114 76 4C eu
100 1101 115 77 4D M
100 1110 116 78 4E N
100 1111 117 79 4F O
101 0000 120 80 50 P
101 0001 121 81 51 Q
101 0010 122 82 52 R
101 0011 123 83 53 S
101 0100 124 84 54 T
101 0101 125 85 55 você
101 0110 126 86 56 V
101 0111 127 87 57 C
101 1000 130 88 58 X
101 1001 131 89 59 Y
101 1010 132 90 5A Z
101 1011 133 91 5B [
101 1100 134 92 5C \ ~ \
101 1101 135 93 5D ]
101 1110 136 94 5E ^
101 1111 137 95 5F _
110 0000 140 96 60 @ `
110 0001 141 97 61 uma
110 0010 142 98 62 b
110 0011 143 99 63 c
110 0100 144 100 64 d
110 0101 145 101 65 e
110 0110 146 102 66 f
110 0111 147 103 67 g
110 1000 150 104 68 h
110 1001 151 105 69 eu
110 1010 152 106 6A j
110 1011 153 107 6B k
110 1100 154 108 6C eu
110 1101 155 109 6D m
110 1110 156 110 6E n
110 1111 157 111 6F o
111 0000 160 112 70 p
111 0001 161 113 71 q
111 0010 162 114 72 r
111 0011 163 115 73 s
111 0100 164 116 74 t
111 0101 165 117 75 você
111 0110 166 118 76 v
111 0111 167 119 77 C
111 1000 170 120 78 x
111 1001 171 121 79 y
111 1010 172 122 7A z
111 1011 173 123 7B {
111 1100 174 124 7C ACK ¬ |
111 1101 175 125 7D }
111 1110 176 126 7E ESC | ~

Conjunto de caracteres

Os pontos que representavam um personagem diferente nas versões anteriores (a versão de 1963 ou o rascunho de 1965) são exibidos em caixas. Os pontos atribuídos desde a versão de 1963, mas inalterados de outra forma, são mostrados ligeiramente sombreados em relação às cores da legenda.

ASCII (1977/1986)
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _UMA _B _C _D _E _F
0_
0
NUL
0000
SOH
0001
STX
0002
ETX
0003
EOT
0004
ENQ
0005
ACK
0006
BEL
0007
BS
0008
HT
0009
LF
000A
VT
000B
FF
000C
CR
000D
SO
000E
SI
000F
1_
16
DLE
0010
DC1
0011
DC2
0012
DC3
0013
DC4
0014
NAK
0015
SYN
0016
ETB
0017
CAN
0018
EM
0019
SUB
001A
ESC
001B
FS
001C
GS
001D
RS
001E
US
001F
2_
32
SP
0020
!
0021
"
0022
#
0023
$
0024
%
0025
&
0026
'
0027
(
0028
)
0029
*
002A
+
002B
,
002C
-
002D
.
002E
/
002F
3_
48
0
0030
1
0031
2
0032
3
0033
4
0034
5
0035
6
0036
7
0037
8
0038
9
0039
:
003A
;
003B
<
003C
=
003D
>
003E
?
003F
4_
64
@
0040
A
0041
B
0042
C
0043
D
0044
E
0045
F
0046
G
0047
H
0048
I
0049
J
004A
K
004B
L
004C
M
004D
N
004E
O
004F
5_
80
P
0050
Q
0051
R
0052
S
0053
T
0054
U
0055
V
0056
W
0057
X
0058
Y
0059
Z
005A
[
005B
\
005C
]
005D
^
005E
_
005F
6_
96
`
0060
a
0061
b
0062
c
0063
d
0064
e
0065
f
0066
g
0067
h
0068
eu
0069
j
006A
k
006B
l
006C
m
006D
n
006E
o
006F
7_
112
p
0070
q
0071
r
0072
s
0073
t
0074
u
0075
v
0076
w
0077
x
0078
y
0079
z
007A
{
007B
|
007C
}
007D
~
007E
DEL
007F

  Carta  Número  Pontuação  Símbolo  De outros  Indefinido  Personagem alterado da versão de 1963 ou rascunho de 1965

Usar

ASCII foi usado comercialmente pela primeira vez em 1963 como um código de tele-impressora de sete bits para a rede TWX (TeletypeWriter eXchange) da American Telephone & Telegraph . O TWX originalmente usava o ITA2 de cinco bits anterior , que também era usado pelo sistema de tele- impressora concorrente da Telex . Bob Bemer introduziu recursos como a sequência de escape . [4] Seu colega britânico Hugh McGregor Ross ajudou a popularizar este trabalho - de acordo com Bemer, "tanto que o código que viria a se tornar ASCII foi chamado pela primeira vez de Código Bemer-Ross na Europa". [48] Por causa de seu extenso trabalho em ASCII, Bemer foi chamado de "o pai do ASCII".[49]

Em 11 de março de 1968, o presidente dos EUA Lyndon B. Johnson ordenou que todos os computadores adquiridos pelo Governo Federal dos Estados Unidos suportassem ASCII, declarando: [50] [51] [52]

Também aprovei as recomendações do Secretário de Comércio [ Luther H. Hodges ] com relação aos padrões para registrar o Código Padrão para Intercâmbio de Informações em fitas magnéticas e de papel quando usadas em operações de computador. Todos os computadores e configurações de equipamentos relacionados trazidos para o inventário do Governo Federal em e após 1 de julho de 1969, devem ter a capacidade de usar o Código Padrão para Intercâmbio de Informações e os formatos prescritos pelos padrões de fita magnética e fita de papel quando essas mídias são usadas.

ASCII era a codificação de caracteres mais comum na World Wide Web até dezembro de 2007, quando a codificação UTF-8 a ultrapassou; UTF-8 é compatível com versões anteriores de ASCII. [53] [54] [55]

Variantes e derivações

À medida que a tecnologia da computação se espalhou pelo mundo, diferentes órgãos de padronização e corporações desenvolveram muitas variações do ASCII para facilitar a expressão de idiomas diferentes do inglês que usavam alfabetos de base romana. Alguém poderia classificar algumas dessas variações como " extensões ASCII ", embora alguns usem mal esse termo para representar todas as variantes, incluindo aquelas que não preservam o mapa de caracteres ASCII no intervalo de 7 bits. Além disso, as extensões ASCII também foram rotuladas incorretamente como ASCII.

Códigos de 7 bits

Desde o início de seu desenvolvimento, [56] o ASCII pretendia ser apenas uma das várias variantes nacionais de um padrão de código de caractere internacional.

Outros organismos de padrões internacionais ratificaram codificações de caracteres como ISO 646 (1967) que são idênticas ou quase idênticas a ASCII, com extensões para caracteres fora do alfabeto inglês e símbolos usados ​​fora dos Estados Unidos, como o símbolo da libra esterlina do Reino Unido (£). Quase todos os países precisavam de uma versão adaptada do ASCII, uma vez que o ASCII atendia apenas às necessidades dos Estados Unidos e de alguns outros países. Por exemplo, o Canadá tinha sua própria versão que suportava caracteres franceses.

Muitos outros países desenvolveram variantes do ASCII para incluir letras não inglesas (por exemplo , é , ñ , ß , Ł ), símbolos de moeda (por exemplo , £ , ¥ ), etc. Veja também YUSCII (Iugoslávia).

Ele compartilharia a maioria dos caracteres em comum, mas atribuiria outros caracteres úteis localmente a vários pontos de código reservados para "uso nacional". No entanto, os quatro anos que decorreram entre a publicação do ASCII-1963 e a primeira aceitação da ISO de uma recomendação internacional durante 1967 [57] fizeram com que as escolhas do ASCII para os caracteres de uso nacional parecessem ser padrões de facto para o mundo, causando confusão e incompatibilidade uma vez que outros países começaram a fazer suas próprias atribuições a esses pontos de código.

ISO / IEC 646, como ASCII, é um conjunto de caracteres de 7 bits. Ele não disponibiliza nenhum código adicional, portanto, os mesmos pontos de código codificam caracteres diferentes em países diferentes. Os códigos de escape foram definidos para indicar qual variante nacional aplicada a um trecho de texto, mas raramente eram usados, por isso muitas vezes era impossível saber com qual variante trabalhar e, portanto, qual caractere um código representava e, em geral, o texto. os sistemas de processamento poderiam lidar com apenas uma variante de qualquer maneira.

Como os caracteres de colchete e chave de ASCII foram atribuídos a pontos de código de "uso nacional" que foram usados ​​para letras acentuadas em outras variantes nacionais da ISO / IEC 646, um programador alemão, francês ou sueco etc. usando sua variante nacional da ISO / IEC 646, em vez de ASCII, teve que escrever e, portanto, ler algo como

ä aÄiÜ = 'Ön'; ü

ao invés de

{ a[i] = '\n'; }

Trígrafos C foram criados para resolver esse problema para ANSI C , embora sua introdução tardia e implementação inconsistente em compiladores limitassem seu uso. Muitos programadores mantinham seus computadores em US-ASCII, então texto simples em sueco, alemão etc. (por exemplo, em e-mail ou Usenet ) continha "{,}" e variantes semelhantes no meio das palavras, algo que esses programadores conseguiram costumava ser. Por exemplo, um programador sueco enviando um e-mail para outro programador perguntando se eles deveriam ir almoçar, poderia obter "N {jag har sm | rg} sar" como a resposta, que deveria ser "Nä jag har smörgåsar" que significa "Não, eu tenho sanduíches ".

No Japão e na Coréia, ainda a partir de 2020, uma variação do ASCII é usada, em que a barra invertida (hex 5C) é processada como ¥ (um sinal de iene , no Japão) ou ₩ (um sinal de Won , na Coréia). Isso significa que, por exemplo, o caminho do arquivo C: \ Usuários \ Smith é mostrado como C: ¥ Usuários ¥ Smith (no Japão) ou C: ₩ Usuários ₩ Smith (na Coréia).

Códigos de 8 bits

Eventualmente, à medida que os computadores de 8, 16 e 32 bits (e mais tarde 64 bits ) começaram a substituir os computadores de 12 , 18 e 36 bits como a norma, tornou-se comum usar um byte de 8 bits para armazenar cada um caractere na memória, fornecendo uma oportunidade para parentes estendidos de 8 bits do ASCII. Na maioria dos casos, eles se desenvolveram como verdadeiras extensões do ASCII, deixando o mapeamento de caracteres original intacto, mas adicionando definições de caracteres adicionais após os primeiros 128 (isto é, 7 bits) caracteres.

As codificações incluem ISCII (Índia), VISCII (Vietnã). Embora essas codificações sejam às vezes chamadas de ASCII, o ASCII verdadeiro é definido estritamente apenas pelo padrão ANSI.

A maioria dos primeiros sistemas de computador doméstico desenvolveram seus próprios conjuntos de caracteres de 8 bits contendo desenhos de linha e glifos de jogo, e frequentemente preenchiam alguns ou todos os caracteres de controle de 0 a 31 com mais gráficos. Os computadores Kaypro CP / M usavam os 128 caracteres "superiores" para o alfabeto grego.

O código PETSCII da Commodore International usado para seus sistemas de 8 bits é provavelmente único entre os códigos pós-1970 por ser baseado em ASCII-1963, em vez do ASCII-1967 mais comum, como encontrado no computador ZX Spectrum . Os computadores Atari de 8 bits e Galaksija também usaram variantes ASCII.

O IBM PC definiu a página de código 437 , que substituiu os caracteres de controle por símbolos gráficos, como rostos sorridentes , e mapeou caracteres gráficos adicionais para as 128 posições superiores. Sistemas operacionais como DOS suportavam essas páginas de código e os fabricantes de PCs IBM as suportavam em hardware. A Digital Equipment Corporation desenvolveu o Multinational Character Set (DEC-MCS) para uso no popular terminal VT220 como uma das primeiras extensões projetadas mais para idiomas internacionais do que para gráficos em bloco. O Macintosh definiu o Mac OS Roman e o PostScript também definiu um conjunto, ambos contendo letras internacionais e sinais de pontuação tipográficos em vez de gráficos, mais parecidos com conjuntos de caracteres modernos.

O padrão ISO / IEC 8859 (derivado do DEC-MCS) finalmente forneceu um padrão que a maioria dos sistemas copiava (pelo menos com a mesma precisão com que copiavam ASCII, mas com muitas substituições). Uma outra extensão popular projetada pela Microsoft, o Windows-1252 (freqüentemente rotulado como ISO-8859-1 ), adicionou os sinais de pontuação tipográficos necessários para a impressão de texto tradicional. ISO-8859-1, Windows-1252 e o ASCII de 7 bits original eram as codificações de caracteres mais comuns até 2008, quando o UTF-8 se tornou mais comum. [54]

ISO / IEC 4873 introduziu 32 códigos de controle adicionais definidos no intervalo hexadecimal 80–9F , como parte da extensão da codificação ASCII de 7 bits para se tornar um sistema de 8 bits. [58]

Unicode

O Unicode e o conjunto de caracteres universais (UCS) ISO / IEC 10646 têm uma gama muito mais ampla de caracteres e suas várias formas de codificação começaram a suplantar o ISO / IEC 8859 e ASCII rapidamente em muitos ambientes. Enquanto o ASCII é limitado a 128 caracteres, o Unicode e o UCS suportam mais caracteres, separando os conceitos de identificação única (usando números naturais chamados pontos de código ) e codificação (para formatos binários de 8, 16 ou 32 bits, chamados UTF-8 , UTF-16 e UTF-32 ).

ASCII foi incorporado ao conjunto de caracteres Unicode (1991) como os primeiros 128 símbolos, portanto, os caracteres ASCII de 7 bits têm os mesmos códigos numéricos em ambos os conjuntos. Isso permite que o UTF-8 seja compatível com versões anteriores com ASCII de 7 bits, pois um arquivo UTF-8 contendo apenas caracteres ASCII é idêntico a um arquivo ASCII contendo a mesma sequência de caracteres. Ainda mais importante, a compatibilidade direta é garantida como software que reconhece apenas caracteres ASCII de 7 bits como especiais e não altera os bytes com o conjunto de bits mais alto (como geralmente é feito para suportar extensões ASCII de 8 bits, como ISO-8859-1) preservará os dados UTF-8 inalterados. [59]

Veja também

Notas

  1. ^ a b c d e Os 128 caracteres do conjunto de caracteres ASCII de 7 bits são divididos em oito grupos de 16 caracteres chamados varetas 0–7, associados aos três bits mais significativos . [14] Dependendo da representação horizontal ou vertical do mapa de caracteres, os paus correspondem às linhas ou colunas da tabela.
  2. ^ Oscaracteres Unicode da área " Imagens de controle " U + 2400 a U + 2421 reservados para representar caracteres de controle quando for necessário imprimi-los ou exibi-los em vez de fazer com que desempenhem a função pretendida. Alguns navegadores podem não exibi-los corretamente.
  3. ^ A notação de circunflexo é freqüentemente usada para representar caracteres de controle em um terminal. Na maioria dos terminais de texto, manter pressionada aCtrltecla enquanto digita o segundo caractere digitará o caractere de controle. Às vezes, a tecla shift não é necessária, por exemplo,^@pode ser digitada apenas com Ctrl e 2.
  4. ^ Sequências de escape de caracteresna linguagem de programação C e em muitas outras linguagens influenciadas por ela, como Java e Perl (embora nem todas as implementações suportem necessariamente todas as sequências de escape).
  5. ^ Ocaractere Backspace também pode ser inserido pressionando a← Backspacetecla em alguns sistemas.
  6. ^ a b A ambigüidade do Backspace é devido aos primeiros terminais projetados assumindo que o uso principal do teclado seria perfurar manualmente uma fita de papel sem estar conectado a um computador. Para deletar o caractere anterior, era necessário fazer backup do furador de fita de papel, que por razões mecânicas e de simplicidade era um botão no próprio furador e não no teclado, e então digitar o caractere apagado. Eles, portanto, colocaram um apagamento de produção de chave no local usado nas máquinas de escrever para retrocesso. Quando os sistemas usavam esses terminais e forneciam edição de linha de comando, eles tinham que usar o código "apagado" para executar um retrocesso e muitas vezes não interpretavam o caractere de retrocesso (eles podem ecoar " ^ H"para backspace). Outros terminais não projetados para fita de papel faziam com que a chave neste local produzisse Backspace, e os sistemas projetados para eles usavam esse caractere para fazer o backup. Como o código de exclusão frequentemente produzia um efeito de backspace, isso também forçou os fabricantes de terminais a fazer qualquer Deletetecla produz algo diferente do caractere Delete.
  7. ^ O caractere Tab também pode ser inserido pressionando aTab ↹tecla na maioria dos sistemas.
  8. ^ Ocaractere de retorno de carro também pode ser inserido pressionando atecla↵ EnterouReturnna maioria dos sistemas.
  9. ^ A seqüência de escape \ e não faz parte do ISO C e de muitas outras especificações de linguagem. No entanto, é compreendido por vários compiladores, incluindo GCC .
  10. ^ O caractere Escape também pode ser inserido pressionando aEsctecla em alguns sistemas.
  11. ^ ^^ significaCtrl+^(pressionando as teclas "Ctrl" e acento circunflexo ).
  12. ^ O caráter Excluir às vezes pode ser inserido pressionando a← Backspacetecla em alguns sistemas.
  13. ^ Impresso, os personagens são:
     ! "# $% & '() * +, -. / 0123456789:; <=>? @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] ^ _` abcdefghijklmnopqrstuvwxyz {|} ~

Referências

  1. ^ ANSI (01/12/1975). ISO-IR-006: Conjunto de caracteres gráficos ASCII (PDF) . ITSCJ / IPSJ .
  2. ^ a b "Conjuntos de caracteres" . Autoridade para atribuição de números na Internet (IANA) . 14/05/2007 . Página visitada em 25/08/2019 .
  3. ^ a b c d e f g h i j k l m n o p q r s Mackenzie, Charles E. (1980). Conjuntos de caracteres codificados, história e desenvolvimento (PDF) . The Systems Programming Series (1 ed.). Addison-Wesley Publishing Company, Inc. págs. 6, 66, 211, 215, 217, 220, 223, 228, 236–238, 243–245, 247–253, 423, 425–428, 435–439. ISBN  978-0-201-14460-4. LCCN  77-90165 . Arquivado (PDF) do original em 26 de maio de 2016 . Recuperado em 25 de agosto de 2019 .
  4. ^ a b Brandel, Mary (1999-07-06). "1963: The Debut of ASCII" . CNN . Arquivado do original em 17/06/2013 . Página visitada em 14/04/2008 .
  5. ^ a b c d "Código padrão americano para intercâmbio de informações, ASA X3.4-1963" . American Standards Association (ASA). 17/06/1963 . Obtido em 2020-06-06 .
  6. ^ a b c "Código padrão dos EUA para intercâmbio de informações, USAS X3.4-1967". Instituto de Padrões dos Estados Unidos da América (USASI). 07/07/1967. Citar diário requer |journal=( ajuda )
  7. ^ Jennings, Thomas Daniel (2016-04-20) [1999]. "Uma história anotada de alguns códigos de caracteres ou ASCII: American Standard Code for Information Infiltration" . Pesquisa sensível (SR-IX) . Página visitada em 2020-03-08 .
  8. ^ a b c "Padrão nacional americano para sistemas de informação - conjuntos de caracteres codificados - código padrão nacional americano de 7 bits para intercâmbio de informações (ASCII de 7 bits), ANSI X3.4-1986". American National Standards Institute (ANSI). 1986-03-26. Citar diário requer |journal=( ajuda )
  9. ^ Vint Cerf (1969-10-16). Formato ASCII para Network Interchange . IETF . doi : 10.17487 / RFC0020 . RFC 20 .
  10. ^ Barry Leiba (12/01/2015). "Classificação correta do RFC 20 (formato ASCII) para o padrão da Internet" . IETF .
  11. ^ Shirley, R. (agosto de 2007), Internet Security Glossary, Version 2 , RFC 4949 , arquivado do original em 2016-06-13 , recuperado 2016-06-13 
  12. ^ Maini, Anil Kumar (2007). Eletrônica digital: princípios, dispositivos e aplicações . John Wiley and Sons . p. 28. ISBN 978-0-470-03214-5. Além disso, define códigos para 33 caracteres de controle não imprimíveis, em sua maioria obsoletos, que afetam como o texto é processado.
  13. ^ Bukstein, Ed (julho de 1964). "Códigos Binários de Computador e ASCII" . Electronics World . 72 (1): 28–29. Arquivado do original em 03/03/2016 . Página visitada em 2016-05-22 .
  14. ^ a b c d e f Bemer, Robert William (1980). "Capítulo 1: Dentro do ASCII" (PDF) . Software de uso geral . O melhor da idade da interface. 2 . Portland, OR, EUA: dilithium Press. pp. 1-50. ISBN  978-0-918398-37-6. LCCN  79-67462 . Arquivado do original em 27/08/2016 . Recuperado em 27/08/2016 , a partir de:
    • Bemer, Robert William (maio de 1978). "Dentro do ASCII - Parte I". Idade da interface . 3 (5): 96–102.
    • Bemer, Robert William (junho de 1978). "Por Dentro do ASCII - Parte II". Idade da interface . 3 (6): 64–74.
    • Bemer, Robert William (julho de 1978). "Por Dentro do ASCII - Parte III". Idade da interface . 3 (7): 80–87.
  15. ^ Breve Relatório: Reunião do Grupo de Trabalho do CCITT sobre o Novo Alfabeto do Telégrafo, 13–15 de maio de 1963.
  16. ^ Relatório da ISO / TC / 97 / SC 2 - Reunião de 29 a 31 de outubro de 1963.
  17. ^ Relatório sobre o grupo de tarefas X3.2.4, 11 de junho de 1963, construção do Pentágono, Washington, CC.
  18. ^ Relatório da Reunião No. 8, Grupo de Tarefas X3.2.4, 17 e 18 de dezembro de 1963
  19. ^ a b c Inverno, Dik T. (2010) [2003]. "Padrões dos EUA e internacionais: ASCII" . Arquivado do original em 16/01/2010.
  20. ^ a b c d e f g Salste, Tuomas (janeiro de 2016). "Conjuntos de caracteres de 7 bits: revisões de ASCII" . Aivosto Oy. urn: nbn: fi-fe201201011004 . Arquivado do original em 13/06/2016 . Retirado 2016-06-13 .
  21. ^ "Informações". Scientific American (edição especial). 215 (3). Setembro de 1966. JSTOR e24931041 . 
  22. ^ Korpela, Jukka K. (2014-03-14) [2006-06-07]. Unicode Explained - Internacionalizar Documentos, Programas e Sites da Web (2ª versão da 1ª ed.). O'Reilly Media, Inc. p. 118. ISBN 978-0-596-10121-3.
  23. ^ ANSI INCITS 4-1986 (R2007): Padrão Nacional Americano para Sistemas de Informação - Conjuntos de Caracteres Codificados - Código Padrão Nacional Americano de 7 bits para Intercâmbio de Informações (ASCII de 7 bits) (PDF) , 2007 [1986], arquivado (PDF) do original em 07/02/2014 , recuperado em 12/06/2016
  24. ^ "INCITS 4-1986 [R2012]: Sistemas de informação - Conjuntos de caracteres codificados - Código padrão nacional americano de 7 bits para intercâmbio de informações (ASCII de 7 bits)" . 15/06/2012. Arquivado do original em 2020-02-28 . Obtido em 2020-02-28 .
  25. ^ "INCITS 4-1986 [R2017]: Sistemas de informação - Conjuntos de caracteres codificados - Código padrão nacional americano de 7 bits para intercâmbio de informações (ASCII de 7 bits)" . 02-11-2017 [09/06/2017]. Arquivado do original em 2020-02-28 . Obtido em 2020-02-28 .
  26. ^ Sequenciamento de bits do código padrão nacional americano para intercâmbio de informações em transmissão de dados serial a bit , American National Standards Institute (ANSI), 1966, X3.15-1966
  27. ^ "BruXy: comunicação de rádio teletipo" . 10/10/2005. Arquivado do original em 12/04/2016 . Página visitada em 2016-05-09 . O código transmitido usa o International Telegraph Alphabet No. 2 (ITA-2), que foi introduzido pelo CCITT em 1924.
  28. ^ a b Smith, Gil (2001). "Códigos de comunicação de teletipo" (PDF) . Baudot.net. Arquivado (PDF) do original em 20/08/2008 . Página visitada em 2008-07-11 .
  29. ^ Sawyer, Stanley A .; Krantz, Steven George (1995). A TeX Primer for Scientists . CRC Press, LLC . p. 13. bibcode : 1995tps..book ..... S . ISBN 978-0-8493-7159-2. Arquivado do original em 22/12/2016 . Página visitada em 29/10/2016 .
  30. ^ Savard, John JG "Teclados de computador" . Arquivado do original em 24/09/2014 . Página visitada em 24/08/2014 .
  31. ^ "Definição ASCIIbética" . PC Magazine . Arquivado do original em 09/03/2013 . Página visitada em 14/04/2008 .
  32. ^ Resnick, P. (abril de 2001), Internet Message Format , RFC 2822 , arquivado do original em 2016-06-13 , recuperado 2016-06-13  (NB. NO-WS-CTL.)
  33. ^ McConnell, Robert; Haynes, James; Warren, Richard. "Compreendendo os códigos ASCII" . Arquivado do original em 27/02/2014 . Página visitada em 11/05/2014 .
  34. ^ Barry Margolin (29/05/2014). "Re: histórico do editor e processador de texto (era: Re: RTF para emacs)" . help-gnu-emacs (lista de discussão). Arquivado do original em 2014-07-14 . Página visitada em 11/07/2014 .
  35. ^ a b "Manual do Sistema de Multiprogramação PDP-6" (PDF) . Digital Equipment Corporation (DEC). 1965. p. 43. Arquivado (PDF) do original em 2014-07-14 . Página visitada em 2014-07-10 .
  36. ^ a b "PDP-10 Reference Handbook, Book 3, Communicating with the Monitor" (PDF) . Digital Equipment Corporation (DEC). 1969. p. 5-5. Arquivado (PDF) do original em 15/11/2011 . Página visitada em 2014-07-10 .
  37. ^ "Ajuda - Manual GNU Emacs" . Arquivado do original em 11/07/2018 . Página visitada em 11/07/2018 .
  38. ^ Tim Paterson (2007-08-08). "O DOS é um Rip-Off do CP / M?" . DosMan Drivel . Arquivado do original em 20/04/2018 . Página visitada em 2018-04-19 .
  39. ^ Ossanna, JF ; Saltzer, JH (17-19 de novembro de 1970). "Problemas técnicos e de engenharia humana na conexão de terminais a um sistema de compartilhamento de tempo" (PDF) . Proceedings of the November 17-19, 1970, Fall Joint Computer Conference (FJCC) . p. 357: AFIPS Press. pp. 355-362. Arquivado (PDF) do original em 19/08/2012 . Obtido em 29/01/2013 . Usar uma função de "nova linha" (combinação de retorno de carro e avanço de linha) é mais simples para o homem e a máquina do que exigir as duas funções para iniciar uma nova linha; o American National Standard X3.4-1968 permite que o código de alimentação de linha carregue o significado de nova linha.Manutenção CS1: localização ( link )
  40. ^ O'Sullivan, T. (1971-05-19), TELNET Protocol , Internet Engineering Task Force (IETF), pp. 4-5, RFC 158 , arquivado do original em 2016-06-13 , recuperado 2013-01 -28 
  41. ^ Neigus, Nancy J. (1973-08-12), File Transfer Protocol , Internet Engineering Task Force (IETF), RFC 542 , arquivado do original em 2016-06-13 , recuperado em 2013-01-28 
  42. ^ Postel, Jon (junho de 1980), File Transfer Protocol , Internet Engineering Task Force (IETF), RFC 765 , arquivado do original em 2016-06-13 , recuperado em 2013-01-28 
  43. ^ "Plano de tradução EOL para Mercurial" . Mercurial. Arquivado do original em 16/06/2016 . Recuperado em 24/06/2016 .
  44. ^ Bernstein, Daniel J. "Bare LFs in SMTP" . Arquivado do original em 29/10/2011 . Obtido em 28/01/2013 .
  45. ^ CP / M 1.4 Guia de interface (PDF) . Pesquisa digital . 1978. p. 10. Arquivado (PDF) do original em 29/05/2019 . Página visitada em 07-10-2017 .
  46. ^ Cerf, Vinton Gray (1969-10-16), formato ASCII para Network Interchange , Network Working Group, RFC 20 , arquivado do original em 2016-06-13 , recuperado 2016-06-13 (NB. Texto quase idêntico ao USAS X3.4-1968, exceto para a introdução.)
  47. ^ Haynes, Jim (13/01/2015). "Primeira mão: Chad é nosso produto mais importante: a memória de um engenheiro da Teletype Corporation" . Wiki de História da Engenharia e Tecnologia (ETHW). Arquivado do original em 31/10/2016 . Retirado 2016-10-31 . Houve a mudança do ASCII de 1961 para o ASCII de 1968. Algumas linguagens de computador usavam caracteres em ASCII de 1961, como seta para cima e seta para a esquerda. Esses caracteres desapareceram do ASCII de 1968. Trabalhamos com Fred Mocking, que agora estava em Vendas no Teletype , em um tipo de cilindro que comprometeria a mudança de caracteres para que os significados do ASCII 1961 não fossem totalmente perdidos. O caractere de sublinhado foi feito em forma de cunha para que também pudesse servir como uma seta para a esquerda.
  48. ^ Bemer, Robert William . "Bemer encontra a Europa (Padrões de computador) - Vinhetas da história do computador" . Trailing-edge.com. Arquivado do original em 17/10/2013 . Página visitada em 14/04/2008 .(NB. Bemer trabalhava na IBM naquela época.)
  49. ^ "Robert William Bemer: Biografia" . 09/03/2013. Arquivado do original em 16/06/2016.
  50. ^ Johnson, Lyndon Baines (11/03/1968). "Memorando Aprovando a Adoção pelo Governo Federal de um Código Padrão para Intercâmbio de Informações" . O Projeto da Presidência Americana. Arquivado do original em 14/09/2007 . Página visitada em 14/04/2008 .
  51. ^ Richard S. Shuford (1996-12-20). "Re: história inicial do ASCII?" . Grupo de notíciasalt.folklore.computers . Usenet: [email protected] . 
  52. ^ Folts, Harold C .; Karp, Harry, eds. (01/02/1982). Compilação de padrões de comunicação de dados (2ª edição revisada). McGraw-Hill Inc. ISBN  978-0-07-021457-6.
  53. ^ Dubost, Karl (06-05-2008). "Crescimento UTF-8 na Web" . W3C Blog . Consórcio da World Wide Web . Arquivado do original em 16/06/2016 . Página visitada em 2010-08-15 .
  54. ^ a b Davis, marca (2008-05-05). "Mudança para Unicode 5.1" . Blog oficial do Google . Arquivado do original em 16/06/2016 . Página visitada em 2010-08-15 .
  55. ^ Davis, Mark (2010-01-28). "Unicode quase 50% da web" . Blog oficial do Google . Arquivado do original em 16/06/2016 . Página visitada em 2010-08-15 .
  56. ^ "Critérios específicos", anexo ao memorando de RW Reach, "Reunião X3-2 - 14 e 15 de setembro", 18 de setembro de 1961
  57. ^ Maréchal, R. (1967-12-22), ISO / TC 97 - Computadores e processamento de informações: Aceitação do rascunho da recomendação ISO nº 1052
  58. ^ The Unicode Consortium (2006-10-27). "Capítulo 13: Áreas especiais e caracteres de formato" (PDF) . Em Allen, Julie D. (ed.). O padrão Unicode, Versão 5.0 . Upper Saddle River, Nova Jersey, EUA: Addison-Wesley Professional . p. 314. ISBN  978-0-321-48091-0. Página visitada em 2015-03-13 .
  59. ^ "utf-8 (7) - Página de manual do Linux" . Man7.org. 26/02/2014. Arquivado do original em 22/04/2014 . Retirado 2014-04-21 .

Leitura adicional

links externos