ASCII - ASCII


Da Wikipédia, a enciclopédia livre

ASCII
ASCII-infobox.svg
ASCII (1967 ou posterior)
MIME / IANA us-ascii
Alias ​​(es) ASCII
Línguas) Inglês
Classificação série ISO 646
extensões
Precedido por ITA 2 , FIELDATA
Sucedido por ISO 8859 , Unicode
Outros codificação relacionado (s) PETSCII

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

ASCII é o nome tradicional para o sistema de codificação; a Internet Assigned Numbers Authority (IANA) prefere o nome atualizado US-ASCII , que esclarece que este sistema foi desenvolvido nos EUA e com base nos símbolos tipográficos predominantemente em uso lá.

ASCII é um dos marcos do IEEE .

ASCII gráfico de um manual de impressora anterior do que 1972 (b1 é o bit menos significativo.)

visão global

ASCII foi desenvolvido a partir de código telegráfico . A sua primeira utilização comercial foi como um de sete bit teleprinter código promovida por serviços de dados de Bell. O trabalho sobre o padrão ASCII começou em 6 de Outubro de 1960, com a primeira reunião do americano Standards Association 's (ASA) (agora o American National Standards Institute ou ANSI) subcomissão X3.2. A primeira edição da norma foi publicada em 1963, passou por uma grande revisão durante 1967 e teve a sua mais recente atualização durante 1986. Em comparação com códigos de telégrafo anteriores, o código de Bell proposto e ASCII foram ambos solicitados para classificação mais conveniente (isto é, alfabetização ) de listas e recursos adicionais para além teleimpressoras dispositivos.

Originalmente baseado no alfabeto Inglês , ASCII codifica 128 especificados caracteres em números inteiros de sete bits, conforme mostrado no gráfico ASCII acima. Noventa e cinco dos caracteres codificados são impressos: estes incluem os dígitos 0 a 9 , letras minúsculas um para z , letras maiúsculas A a Z , e símbolos de pontuação . Além disso, a especificação ASCII original incluiu 33 não imprimíveis códigos de controlo que originaram com máquinas teletipo ; a maioria destes são agora obsoleto, embora alguns ainda são vulgarmente utilizados, tais como os de retorno transporte , avanço de linha e guia códigos.

Por exemplo, em minúsculas i seria representada no código ASCII por binário 1101001 = hexadecimal 69 ( i é a letra nono) = decimal 105.

História

ASCII (1963). Fotos de controle de controles equivalentes são mostrados quando existem, ou um ponto cinza de outra forma.

A American Standard Code Information Interchange (ASCII) foi desenvolvido sob os auspícios de um comitê do American Standards Association (ASA), o chamado comitê X3, por sua X3.2 (mais tarde X3L2) subcomitê, e mais tarde por X3 dessa subcomissão. 2.4 grupo de trabalho (agora INCITS ). O ASA tornou-se a Estados Unidos da América Standards Institute (USASI) e, finalmente, o American National Standards Institute (ANSI).

Com a outra caracteres especiais e códigos de controle preenchidos, ASCII foi publicado como ASA X3.4-1963, deixando 28 posições de código sem qualquer significado atribuído, reservados para padronização futura, e um código de controle não atribuído. Houve algum debate no momento se deve haver mais caracteres de controle em vez do alfabeto em minúsculas. A indecisão não durou muito tempo: em maio de 1963, o Grupo de Trabalho CCITT no New Telegraph alfabeto proposto para atribuir caracteres minúsculos para varas 6 e 7, e Organização Internacional de Normalização TC 97 SC 2 votado em outubro para incorporar a mudança em seu projecto de norma . O grupo de trabalho X3.2.4 votou sua aprovação para que a alteração ASCII na sua reunião maio 1963. Localizando as letras minúsculas em varas 6 e 7, fizeram com que os caracteres sejam diferentes no padrão de bits da meia-caixa superior por um ico bit, o que simplificou insensíveis ao caso correspondente de caracteres e a construção de teclados e impressoras.

A comissão X3 feitas outras alterações, incluindo outros novos caracteres (a cinta e barras verticais caracteres), mudar o nome alguns caracteres de controlo (SOM tornou-se início do cabeçalho (SOH)) e movendo-se ou remover outros (RU foi removido). ASCII foi posteriormente atualizado como USAS X3.4-1967, então USAS X3.4-1968, ANSI X3.4-1977 e, finalmente, ANSI X3.4-1986.

Revisões do padrão ASCII:

  • ASA X3.4-1963
  • ASA X3.4-1965 (aprovado, mas não publicado, no entanto, utilizado por IBM 2260 & 2265 estações de visualização e o IBM 2848 Control Display)
  • USAS X3.4-1967
  • USAS X3.4-1968
  • ANSI X3.4-1977
  • ANSI X3.4-1986
  • ANSI X3.4-1986 (R1992)
  • ANSI X3.4-1986 (R1997)
  • ANSI INCITS 4-1986 (R2002)
  • ANSI INCITS 4-1986 (R2007)
  • ANSI INCITS 4-1986 (R2012)

No padrão X3.15, o comitê X3 também abordou como ASCII devem ser transmitidos ( bit menos significativo primeiro), e como ele deve ser gravado em fita perfurada. Eles propuseram um 9-track padrão para fita magnética, e tentou lidar com alguns cartões perfurados formatos.

considerações de design

largura de bits

A subcomissão X3.2 desenhado ASCII com base nas anteriores telex sistemas de codificação. Como outras codificações de caracteres , ASCII especifica uma correspondência entre padrões digitais bit e personagens símbolos (ou seja, grafemas e caracteres de controle ). Isso permite digitais dispositivos se comuniquem uns com os outros e para processar, armazenar e transmitir informações orientadas para o personagem, como língua escrita. Antes ASCII foi desenvolvido, as codificações em uso incluiu 26 alfabéticos caracteres, 10 dígitos numéricos , e de 11 a 25 símbolos gráficos especiais. Para incluir todas estas, e caracteres de controlo compatíveis com o Comité Consultivo Internacional Téléphonique et télégraphique (CCITT) Internacional Telegraph alfabeto No. 2 padrão (ITA2) de 1924, FIELDATA (1956), e no início de EBCDIC (1963), mais de 64 códigos eram necessário para ASCII.

ITA2 foram, por sua vez baseado no código de telégrafo 5-bit Émile Baudot inventado em 1870 e patenteado em 1874.

O comitê debateu a possibilidade de uma mudança de função (como em ITA2 ), o que permitiria mais de 64 códigos de ser representado por um código de seis bits . Em um código mudou, alguns códigos de caracteres determinar escolhas entre opções para os seguintes códigos de caracteres. Ele permite a codificação compacta, mas é menos confiável para a transmissão de dados , como um erro na transmissão do código de turno normalmente faz uma longa parte da transmissão ilegível. O comitê de padrões decidiu contra a mudança, e assim ASCII necessário pelo menos um código de sete bits.

A comissão considerou um código de oito bits, uma vez que oito bits ( octetos ) permitiria dois padrões de quatro bits para codificar eficientemente dois dígitos com decimal codificado binário . No entanto, seria necessário toda a transmissão de dados para enviar oito bits quando sete poderia bastar. A comissão votou a utilizar um código de sete bits para minimizar os custos associados com a transmissão de dados. Desde fita perfurada no momento poderia gravar oito bits em uma posição, ele também permitiu um bit de paridade para a verificação de erros , se desejar. Oito bits máquinas (com octetos como o tipo de dados nativa) que não utilizam a verificação de paridade tipicamente definir o oitavo bit a 0. Em algumas impressoras, o bit foi usada para permitir itálico impressão.

organização interna

O código em si foi padronizada de modo que a maioria dos códigos de controle estavam juntos e todos os códigos gráficos estavam juntos, para facilitar a identificação. As primeiras duas chamadas varas ASCII (32 posições) foram reservados para caracteres de controlo. O caractere "espaço" teve que vir antes de gráficos para fazer a classificação mais fácil, por isso tornou-se posição 20 hex ; pela mesma razão, muitos sinais especiais vulgarmente utilizados como separadores foram colocados antes de dígitos. O comitê decidiu que era importante apoiar maiúsculas alfabetos 64 caracteres , e optou por padrão ASCII para que ele pudesse ser reduzido facilmente a um conjunto de 64 caracteres de utilização de códigos gráficos, como foi feito na SIXBIT dezembro código (1963). Minúsculas letras, portanto, não foram intercalados com letras maiúsculas. Para manter as opções disponíveis para letras minúsculas e outros elementos gráficos, os códigos especiais e numéricos foram organizados antes das letras, ea letra A foi colocado na posição 41 hex para coincidir com o rascunho do padrão britânico correspondente. Os dígitos 0-9 são prefixados com 011, mas os restantes 4 bits correspondem aos seus respectivos valores em binário, fazendo a conversão com codificado binário decimal simples.

Muitos dos caracteres alfanuméricos não foram posicionados para corresponder a sua posição deslocada em máquinas de escrever; um subtileza importante é que estes se basearem na mecânicos de máquinas de escrever, não eléctricos máquinas de escrever. Máquinas de escrever mecânicas seguiu o padrão estabelecido pela Remington No. 2 (1878), a primeira máquina de escrever com uma chave de mudança, e os valores modulados de 23456789-foram "#$%_&'() - primeiros máquinas de escrever omitidas 0 e 1 , usando S (letra maiúscula O ) e l (letra minúscula L ) em vez, mas 1!e 0)pares tornou-se padrão, uma vez 0 e 1 tornou-se comum. Assim, em ASCII !"#$%foram colocadas na segunda vara, posições 1-5, correspondente aos dígitos 1-5 na vara adjacente. Os parênteses não poderia corresponder a 9 e 0 , no entanto, porque o lugar correspondente a 0 foi tomada pelo caractere de espaço. Este foi acomodada por remoção _(sublinhado) a partir de 6 e deslocando os restantes caracteres, que correspondem a muitas máquinas de escrever Europeias que os parênteses colocados com 8 e 9 . Essa discrepância de máquinas de escrever levaram a teclados emparelhado bits , nomeadamente a Teletype Modelo 33 , que usou o layout da esquerda deslocou correspondente a ASCII, não para máquinas de escrever mecânicas tradicionais. Máquinas de escrever elétricas, nomeadamente a IBM Selectric (1961), usou um layout um pouco diferente que se tornou padrão em computadores - seguindo o IBM PC (1981), especialmente Modelo M (1984) - e, assim, mudar valores para símbolos em teclados modernos não correspondem tão de perto a tabela ASCII como teclados anteriores fizeram. A /?dupla também remonta ao No. 2, e os ,< .>pares foram usados em alguns teclados (outros, incluindo o No. 2, não mudar ,(vírgula) ou .(ponto final) para que eles poderiam ser usados em maiúsculas, sem unshifting). No entanto, ASCII dividir o ;:par (datando a N ° 2), e os símbolos matemáticos rearranjados (convenções variadas, normalmente -* =+) a :* ;+ -=.

Alguns caracteres comuns não foram incluídas, nomeadamente ½¼¢, ao passo que ^`~foram incluídos como sinais diacríticos para uso internacional, e <>para uso matemática, juntamente com os caracteres de linha simples \|(além comum /). O @ símbolo não foi utilizada na Europa continental e o comitê esperava que seria substituído por um acentuado À na variação francês, de modo que o @ foi colocado na posição 40 hex , logo antes de a letra A.

Os códigos de controle sentiu essencial para a transmissão de dados foram o início da mensagem (SOM), final de endereço (EOA), fim da mensagem (MOE), fim da transmissão (EOT), "quem é você?" (WRU), "é você?" (RU), um dispositivo de controlo reservado (dc0), inactivo síncrono (SINC), e reconhecer (ACK). Estes foram posicionados para maximizar a distância de Hamming entre seus padrões de bits.

ordem de caracteres

Ordem ASCII-código também é chamado ASCIIbetical ordem. Agrupamento de dados é feito às vezes nesta ordem, em vez de (ordem alfabética "padrão" seqüência de agrupamento ). Os principais desvios na ordem ASCII são:

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

Uma ordem intermediário converte letras maiúsculas para minúsculas antes de comparar valores ASCII.

grupos de caracteres

caracteres de controle

ASCII reserva-se os primeiros 32 códigos (números decimais 0-31) para os caracteres de controlo : codifica originalmente não pretende representar a informação de impressão, mas em vez de controlar dispositivos (tais como impressoras ) que fazem uso de ASCII, ou para proporcionar meta-informação sobre dados córregos, como aqueles armazenados em fitas magnéticas.

Por exemplo, carácter 10 representa a função de "avanço de linha" (o que faz com que uma impressora para avançar o seu papel), e de caracteres de 8 representa "retrocesso". RFC  2822 refere-se a controlar os caracteres que não incluem o retorno do carro, de avanço de linha ou espaço em branco como caracteres de controlo sem espaços em branco. Excepto para os caracteres de controlo que prescrevem formatação orientado por linhas elementar, ASCII não define qualquer mecanismo para descrever a estrutura ou a aparência de texto dentro de um documento. Outros esquemas, tais como linguagens de marcação , página de endereço e layout do documento e formatação.

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

Provavelmente, o dispositivo único de maior influência sobre a interpretação destes caracteres era o teletipo Modelo 33 ASR, que era um terminal de impressão com uma disponível fita de papel opção leitor / punção. Fita de papel era um meio muito popular para armazenamento de programa de longo prazo até 1980, menos onerosas e de certa forma menos frágeis do que a fita magnética. Em particular, os Teletype Modelo 33 atribuições de máquina para códigos 17 (Controlo-Q, DC1, também conhecido como XON), 19 (Controlo-S, DC3, também conhecido como DESL_X), e 127 ( Apagar ) tornou-se padrões de facto. O modelo 33 foi também notável para tomar a descrição de Controlo-G (Código 7, BEL, significando audivelmente alertar o operador), literalmente, que a unidade continha um sino real que tocou quando recebeu uma personagem BEL. Porque o keytop para a chave O também mostrou um símbolo de seta esquerda (de ASCII-1963, que teve esse caráter em vez de sublinhado ), a utilização inadequada de código 15 (Control-O, Shift In) interpretado como "apagar o caractere anterior" também foi adotado por muitos sistemas de início de tempo compartilhado, mas, eventualmente, tornou-se negligenciada.

Quando um teletipo 33 ASR equipado com o leitor de fita de papel automática recebeu um controlo-S (DESL_X, uma abreviatura para transmitir fora), que causou o leitor de fita para parar; recebendo Controlo-Q (XON, "transmitir no") fez com que o leitor de fita para retomar. Esta técnica tornou-se adotado por vários sistemas operacionais de computador cedo como um sinal de "aperto de mão", advertindo que um remetente para interromper a transmissão por causa da iminente estouro; que persiste até hoje em muitos sistemas como uma técnica de controle de saída manual. Em alguns sistemas de controlo-S mantém o seu significado mas Controlo-Q é substituído por um segundo controle-S para retomar a saída. A ASR 33 também poderia ser configurado para utilizar Controlo-R (DC2) e Controlo-T (DC4) para iniciar e parar o soco de fita; em algumas unidades equipadas com esta função, a rotulação carácter de controlo correspondente no keycap acima da carta era FITA e FITA respectivamente.

O Teletype não podia mover a cabeça para trás, por isso não colocar uma tecla no teclado para enviar uma BS (backspace). Em vez disso havia uma tecla marcada "rubout" que enviou o código 127 (DEL). O objetivo desta chave foi para apagar erros em uma fita de papel datilografado à mão: o operador tinha que apertar um botão no soco fita para apoiá-la, em seguida, digite o rubout, que deu um soco todos os buracos e substituiu o erro com um personagem que destinava-se a ser ignorado. Teletypes eram comumente usados para os computadores menos caros de Digital Equipment Corporation , assim que estes sistemas tiveram que usar a chave disponível e, portanto, o código DEL para apagar o caractere anterior. Devido a isso, terminais de vídeo de dezembro (por padrão) enviou o código DEL para a tecla marcada "Backspace", enquanto a tecla marcada "Delete" enviou uma seqüência de escape, enquanto muitos outros terminais enviou BS para a tecla Backspace. O controlador do terminal Unix só poderia usar um código para fazer backup, isso pode ser definido como BS ou DEL, mas não ambos, resultando em um período muito longo de aborrecimento onde você teve que corrigi-lo, dependendo do que o terminal que você estava usando (conchas modernas usando readline compreender ambos os códigos). A suposição de que nenhuma chave enviado um BS causada Controlo + H para ser utilizado para outros fins, tais como um comando de "ajuda", em Emacs.

Muitos mais dos códigos de controle foram dadas significados muito diferentes dos seus originais. O caráter "escape" (ESC, código 27), por exemplo, foi originalmente destinado a permitir o envio de outros caracteres de controle como literais em vez de chamar o seu significado. Este é o mesmo significado de "escape" encontrado em codificações de URL, linguagem C cordas, e outros sistemas onde certos personagens têm um significado reservado. Ao longo do tempo este significado foi cooptado e eventualmente foi alterado. Em utilização moderna, um ESC enviada para o terminal normalmente indica o início de uma sequência de comandos normalmente sob a forma de um assim chamado " código de escape ANSI " (ou, mais correctamente, um " Sequência Introdutor de controle ") de ECMA-48 ( 1972) e seus sucessores, começando com ESC seguido por um carácter de "[" (-suporte esquerda). Um ESC enviados a partir do terminal é mais frequentemente usado como um out-of-band de caracteres usado para terminar uma operação, como no TECO e vi editores de texto . Na interface gráfica de utilizador (GUI) e de janelas sistemas, CES geralmente provoca um pedido para cancelar o seu funcionamento corrente ou para sair (encerrar) completamente.

A ambiguidade inerente de muitos caracteres de controle, combinado com o seu uso histórico, criou problemas ao transferir arquivos "texto simples" entre os sistemas. O melhor exemplo disso é a nova linha problema em vários sistemas operacionais . Máquinas de teletipo necessário que uma linha de texto ser terminada com ambos "Carriage Return" (que move o cabeçote de impressão para o início da linha) e "Line Feed" (que avança o papel uma linha sem mover a cabeça de impressão). O nome "Return" vem do facto de que em um manual de máquina de escrever a carruagem que prende o papel movido enquanto a posição em que as barras de tipo golpeado a fita permaneceu estacionário. Todo o transporte teve de ser empurrado (devolvido) para a direita, a fim de posicionar a margem esquerda do papel para a próxima linha.

Dezembro sistemas operativos ( OS / 8 , TA-11 , RSX-11 , RSTS , TOPS-10 , etc.) utilizados ambos os caracteres para marcar o fim de uma linha de modo a que o dispositivo de consola (originalmente máquinas teletipo ) iria trabalhar. Até o momento chamado "vidro TTYs" (mais tarde chamados CRTs ou terminais) veio junto, a convenção foi tão bem estabelecido que a compatibilidade necessária continuando a 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é à introdução de PC DOS em 1981, a IBM tinha nenhuma mão no presente, porque os seus 1970. sistemas utilizados EBCDIC em vez de ASCII operando e eles foram orientados para entrada de cartões perfurados e saída da impressora linha na qual o conceito de retorno de carro não tinha sentido. Do IBM PC DOS (também comercializado como MS-DOS pela Microsoft) herdou a convenção em virtude de ser vagamente baseado no CP / M , e do Windows herdado de MS-DOS.

Infelizmente, exigindo dois caracteres para marcar o fim de uma linha introduz complexidade e perguntas a respeito de como interpretar cada personagem quando encontrou sozinho desnecessário. Para simplificar as coisas de texto simples fluxos de dados, incluindo arquivos, sobre Multics usados avanço de linha (LF) sozinho como um terminador de linha. Unix e Unix-like sistemas, e Amiga sistemas, adoptaram esta convenção de Multics. O original Macintosh OS , da Apple DOS , e ProDOS , por outro lado, usou retorno de carro (CR) sozinho como um terminador de linha; No entanto, desde que a Apple substituiu esses sistemas operacionais com os baseados em Unix MacOS sistema operacional, eles agora usam alimentação de linha (LF) também. O Radio Shack TRS-80 também utilizado um CR solitário para terminar linhas.

Computadores ligados à ARPANET incluído máquinas que executam sistemas operativos tais como TOPS-10 e TENEX usando terminações de linha CR-LF, máquinas que executam sistemas operativos tais como Multics usando terminações de linha LF, e máquinas que executam sistemas operativos tais como o OS / 360 que representava linhas quanto uma contagem de caracteres seguido pelos caracteres da linha e que costumava EBCDIC em vez de ASCII. O Telnet protocolo definido um ASCII " da Rede Terminal Virtual " (NVT), para que as conexões entre os hosts com diferentes convenções de delimitação de linhas e conjuntos de caracteres poderia ser apoiado através da transmissão de um formato de texto padrão sobre a rede. Telnet usado ASCII, juntamente com terminações de linha CR-LF, e software usando outras convenções iria traduzir entre as convenções locais e da NVT. O File Transfer Protocol adotado o protocolo Telnet, incluindo o uso do Terminal de Rede Virtual, para uso durante a transmissão de comandos e transferência de dados no modo ASCII padrão. Isso adiciona complexidade para implementações destes protocolos, e outros protocolos de rede, tais como aqueles usados para E-mail e da World Wide Web, em sistemas que não utilizam CR-LF convenção de fim de linha da NVT.

O monitor PDP-6, e o seu sucessor PDP-10 TOPS-10, usado Controlo-Z (SUB) como uma indicação de fim-de-lima para entrada a partir de um terminal. Alguns sistemas operativos tais como o CP / M rastreados comprimento arquivo apenas em unidades de blocos de disco e usado Controlo-Z para assinalar o fim do texto real no arquivo. Por estas razões, EOF, ou fim-de-lima , foi usada coloquialmente e convencionalmente como um acrónimo de três letras para o Controlo-Z em vez de substituto. O código de fim-de-texto ( ETX ), também conhecida como Controlo-C , era inadequado para uma variedade de razões, durante a utilização de Z como o código de controlo para terminar um ficheiro é análogo ao que termina o alfabeto e serve como uma muito conveniente ajuda mnemônica . Uma convenção historicamente comum e ainda prevalece usa a convenção de código ETX para interromper e interromper um programa através de um fluxo de dados de entrada, geralmente a partir de um teclado.

Na biblioteca C e Unix convenções, o caractere nulo é usado para terminar texto cordas ; tais cadeias terminadas em nulos pode ser conhecido em abreviatura como ASCIZ ou ASCIIZ, onde Z significa aqui de "zero".

Binário outubro dezembro feitiço Abreviação Nome (1967)
1963 1965 1967
000 0000 000 0 00 NULO NUL ^@ \0 Nulo
000 0001 001 1 01 SOM SOH ^A Iniciar da posição
000 0010 002 2 02 EOA STX ^B Início do texto
000 0011 003 3 03 MOE ETX ^C Fim de texto
000 0100 004 4 04 EOT ^D End of Transmission
000 0101 005 5 05 WRU ENQ ^E inquérito
000 0110 006 6 06 RU ACK ^F Reconhecimento
000 0111 007 7 07 SINO BEL ^G \a Sino
000 1000 010 8 08 Fe0 BS ^H \b retrocesso
000 1001 011 9 09 HT / SK HT ^I \t Tab horizontal
000 1010 012 10 0A LF ^J \n Line feed
000 1011 013 11 0B VTAB VT ^K \v Tab Vertical
000 1100 014 12 0C FF ^L \f Form feed
000 1101 015 13 0D CR ^M \r retorno de carro
000 1110 016 14 0E ASSIM ^N deslocar fora
000 1111 017 15 0F SI ^O mudança na
001 0000 020 16 10 dc0 DLE ^P Data Link Fuga
001 0001 021 17 11 DC1 ^Q Controlo dispositivo 1 (frequentemente XON )
001 0010 022 18 12 DC2 ^R Controlo 2 Dispositivo
001 0011 023 19 13 DC3 ^S Controlo dispositivo 3 (frequentemente DESL_X )
001 0100 024 20 14 DC4 ^T Controle dispositivo 4
001 0101 025 21 15 ERRAR NAK ^U confirmação negativa
001 0110 026 22 16 SINCRONIZAR SYN ^V Ocioso Synchronous
001 0111 027 23 17 LEM ETB ^W Fim da Transmissão Bloco
001 1000 030 24 18 S0 POSSO ^X Cancelar
001 1001 031 25 19 S1 EM ^Y End of Médio
001 1010 032 26 1A S2 SS SUB ^Z Substituto
001 1011 033 27 1B S3 ESC ^[ \e Escapar
001 1100 034 28 1C S4 FS ^\ ficheiro separador
001 1101 035 29 1D S5 GS ^] grupo Separator
001 1110 036 30 1E S6 RS ^^ registro Separator
001 1111 037 31 1F S7 NOS ^_ Unit Separator
111 1111 177 127 7F DEL ^? Excluir

Outras representações pode ser usado por equipamento especializado, por exemplo ISO 2047 gráficos ou hexadecimais números.

caracteres imprimíveis

Códigos 20 hex a 7E hexadecimal , conhecidos como os caracteres imprimíveis, representam letras, números, sinais de pontuação , e alguns símbolos diversos. Existem 95 caracteres para impressão total.

Código 20 hex , o caractere "espaço" , denota o espaço entre as palavras, como o produzido pela barra de espaço do teclado. Desde o caractere de espaço é considerado um gráfico invisível (em vez de um caractere de controle) é listado na tabela abaixo, em vez de na seção anterior.

Código 7F hexadecimal corresponde ao (DEL) caractere de controle não-imprimíveis "delete" e, portanto, é omitida a partir deste gráfico; ele é coberto no quadro da secção anterior. As versões anteriores do ASCII utilizados a seta para cima em vez do acento circunflexo (5E hex ) ea seta para a esquerda em vez do underscore (5F hex ).

Binário outubro dezembro feitiço Glyph
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 &
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 W
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 W
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

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
L
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
i
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  Outros  indeterminado  Mudou de 1963 versão      

Usar

ASCII foi usado pela primeira vez comercialmente durante 1963 como um código de teletipo sete bits para American Telephone & Telegraph rede do TWX (teletypewriter eXchange). TWX usado originalmente a cinco pouco mais cedo ITA2 , que também foi usado pelo competindo Telex sistema de teletipo. Robert Bemer introduzido características, tais como a sequência de escape . Seu colega britânico Hugh McGregor Ross ajudou a popularizar este trabalho - de acordo com Bemer "tanto assim que o código que viria a se tornar ASCII foi chamado pela primeira vez o Código Bemer-Ross na Europa". Por causa de seu extenso trabalho em ASCII, Bemer tem sido chamado de "o pai de ASCII".

Em 11 de março de 1968, o presidente dos EUA Lyndon B. Johnson determinou que todos os computadores adquiridos pela ASCII apoio do governo federal dos Estados Unidos, afirmando:

Eu também aprovou recomendações do secretário de Comércio relativas às normas para a gravação do Standard Code para Information Interchange em fitas magnéticas e fitas de papel quando eles são usados em operações de computador. Todos os computadores e configurações de equipamentos relacionados trazidos para o Governo Federal inventário e depois de 1 de julho de 1969, deve 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 e papel de fita magnética quando são usados estes meios.

ASCII foi a codificação de caracteres mais comuns na World Wide Web até dezembro de 2007, quando UTF-8 encoding ultrapassado; UTF-8 é compatível com ASCII.

Variantes e derivações

Como a tecnologia de computador espalhou por todo o mundo, diferentes organismos de normalização e corporações desenvolveram muitas variações de ASCII para facilitar a expressão de idiomas diferentes do inglês que usavam alfabetos baseados em Roman. Poderíamos classe algumas dessas variações como " extensões ASCII ", apesar de alguns mau uso esse termo para representar todas as variantes, incluindo aqueles que não preservam personagem-map do ASCII na faixa de 7 bits. Além disso, as extensões ASCII também foram mislabelled como ASCII.

códigos de 7 bits

Desde o início de seu desenvolvimento, ASCII foi destinado a ser apenas uma das diversas variantes nacionais de um padrão de código de caracteres internacionais.

Outros organismos internacionais de normalização ratificaram codificação de caracteres, tais como ISO 646 (1967) que são idênticas ou quase idênticas às ASCII, com extensões para caracteres fora do Inglês alfabeto e símbolos utilizados fora dos Estados Unidos, como o símbolo para do Reino Unido libra esterlina (£). Quase todos os países precisavam de uma versão adaptada do ASCII, desde ASCII adequado às necessidades de apenas os EUA e alguns outros países. Por exemplo, o Canadá teve sua própria versão que apoiou personagens franceses.

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

Seria compartilhar a maioria dos personagens em comum, mas atribuir outras personagens localmente úteis para vários pontos de código reservados para "uso nacional". No entanto, os quatro anos que decorreram entre a publicação da ASCII-1963 e primeira aceitação de ISO de uma recomendação internacional durante 1967 causou escolhas de ASCII para os caracteres de uso nacionais parecem ser padrões de facto para o mundo, causando confusão e incompatibilidade uma vez outros países começou a fazer suas próprias atribuições para esses pontos de código.

ISO / IEC 646, como ASCII, é um conjunto de caracteres de 7 bits. Não faz nenhum códigos adicionais disponíveis, para que os mesmos pontos de código codificado personagens diferentes em diferentes países. códigos de escape foram definidos para indicar qual a variante nacional aplicada a um pedaço de texto, mas eles raramente foram utilizados, de modo que muitas vezes era impossível saber o que variante de trabalhar e, portanto, que o caráter de um código representado, e, em geral, texto- sistemas de processamento poderia lidar com uma única variante de qualquer maneira.

Porque o suporte e cinta caracteres de ASCII foram designados para pontos de código "uso nacional" que foram usados ​​para letras acentuadas em outras variantes nacionais do ISO / IEC 646, um programador alemão, francês ou sueco, etc. usando sua variante nacional da ISO / IEC 646, em vez de ASCII, tinha que escrever, e, portanto, ler, algo como

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

ao invés de

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

Trigraphs C foram criados para resolver este problema para ANSI C , embora a sua introdução tardia e implementação inconsistente em compiladores limitado o seu uso. Muitos programadores mantido seus computadores em US-ASCII, de modo de texto simples em sueco, alemão etc. (por exemplo, em e-mail ou Usenet ) continha "{,}" e variantes similares no meio das palavras, algo que os programadores tem costumava. Por exemplo, um programador sueco mailing outro programador perguntando se eles devem ir para o almoço, poderia começar "N {jag har sm | rg} sar" como a resposta, que deve ser "NA jag har smörgåsar", que significa "Não tenho sanduíches".

códigos de 8 bits

Eventualmente, como 8-, 16- e 32-bit (e depois de 64 bits ) computadores começou a substituir o 12- , 18- e 36-bit computadores como norma, tornou-se comum o uso de um byte de 8 bits para cada armazenar caracteres na memória, proporcionando uma oportunidade para Extended parentes, 8 bits de ASCII. Na maioria dos casos estes desenvolvido como verdadeiras extensões de ASCII, deixando o caráter de mapeamento original intacta, mas a adição de definições de caracteres adicionais após os primeiros 128 (ou seja, de 7 bits) caracteres.

Codificações incluem ISCII (Índia), VISCII (Vietname). Embora essas codificações são por vezes referido como ASCII, a verdadeira ASCII é definido estritamente apenas pelo padrão ANSI.

A maioria dos sistemas de computador cedo casa desenvolveram seus próprios conjuntos de caracteres de 8 bits contendo linha-desenho e jogos glifos, e muitas vezes preenchidos alguns ou todos os caracteres de controle de 0 a 31, com mais gráficos. Kaypro CP / M computadores usados os "superiores" 128 caracteres para o alfabeto grego.

O PETSCII código Commodore Internacional utilizadas para suas 8-bit sistemas é provavelmente único entre os códigos pós-1970, em que está sendo baseado em ASCII-1963, em vez do ASCII a 1967 mais comum, como o encontrado na ZX Spectrum computador. Atari computadores de 8 bits e Galaksija computadores também usou variantes ASCII.

O IBM PC definido página de código 437 , que substituíram os caracteres de controlo com símbolos gráficos, tais como as carinhas , e mapeada caracteres gráficos adicionais para as superiores 128 posições. Sistemas operacionais como o DOS apoiou essas páginas de código, e os fabricantes de PCs IBM suportado-los em hardware. Digital Equipment Corporation desenvolveu o conjunto de caracteres Multinacional (DEC-MCS) para uso na popular VT220 terminal de como uma das primeiras extensões projetadas mais para línguas internacionais do que para blocos gráficos. O Macintosh definido Mac OS Roman e Postscript também definiu um conjunto, essas duas letras internacionais contidas e sinais de pontuação tipográficas em vez de gráficos, mais como conjuntos de caracteres modernos.

A 8859 ISO / IEC padrão (derivado a partir do DEC-MCS) finalmente, proporciona-se um padrão que a maioria dos sistemas copiado (pelo menos mais exacta à medida que copiado ASCII, mas com muitas substituições). Uma nova prorrogação populares projetado pela Microsoft, o Windows-1252 (muitas vezes erroneamente como ISO-8859-1 ), acrescentou as marcas de pontuação tipográficos necessários para impressão de texto tradicional. ISO-8859-1, o Windows-1252, eo ASCII 7-bit original eram as codificações de caracteres mais comuns até 2008, quando UTF-8 se tornou mais comum.

ISO / IEC 4873 introduziu 32 códigos de controlo adicionais definidas na 80-9F hexadecimal gama, como parte de estender o código ASCII de 7 bits para tornar-se um sistema de 8 bits.

Unicode

Unicode ea ISO / IEC 10646 Universal Character Set (UCS) tem uma matriz muito maior de personagens e suas diversas formas de codificação começaram a suplantar a ISO / IEC 8859 e ASCII rapidamente em muitos ambientes. Enquanto ASCII é limitado a 128 caracteres, Unicode e o UCS apoiar mais caracteres, separando os conceitos de identificação único (usando números naturais chamados pontos de código ) e que codifica (a formatos binários de 8, 16 ou 32 bits, chamado UTF-8 , UTF-16 e UTF-32 ).

ASCII foi incorporada no Unicode (1991) conjunto de caracteres como os primeiros 128 símbolos, de modo que os caracteres ASCII de 7 bits têm os mesmos códigos numéricos, em ambos os conjuntos. Isto permite UTF-8 para ser compatível com ASCII de 7 bits, como um ficheiro UTF-8 contendo apenas caracteres ASCII é idêntico para um ficheiro ASCII que contenha a mesma sequência de caracteres. Ainda mais importante, compatibilidade futura está garantida no software que reconhece apenas caracteres ASCII de 7 bits como especiais e não altera bytes com o bit mais alto (como muitas vezes é feito para suportar extensões ASCII de 8 bits, como ISO-8859-1) preservará UTF-8 dados inalterada.

Veja também

Notas

Referências

Outras leituras

links externos