Códigos de controle C0 e C1 - C0 and C1 control codes

O código de controle C0 e C1 ou conjuntos de caracteres de controle definem códigos de controle para uso em texto por sistemas de computador que usam ASCII e derivados de ASCII. Os códigos representam informações adicionais sobre o texto, como a posição de um cursor, uma instrução para iniciar uma nova linha ou uma mensagem de que o texto foi recebido.

Os códigos C0 estão no intervalo 00 HEX –1F HEX e o conjunto C0 padrão foi originalmente definido em ISO 646 ( ASCII ). Os códigos C1 estão no intervalo 80 HEX –9F HEX e o conjunto C1 padrão foi originalmente definido em ECMA-48 (harmonizado posteriormente com ISO 6429). O sistema ISO / IEC 2022 de especificação de controle e caracteres gráficos permite que outros conjuntos C0 e C1 estejam disponíveis para aplicações especializadas, mas eles raramente são usados.

Controles C0

O ASCII definiu 32 caracteres de controle, mais um extra necessário para o caractere DEL de 1 (necessário para fazer todos os furos em uma fita de papel e apagá-la).

Esse grande número de códigos era desejável na época, já que os controles multibyte exigiriam a implementação de uma máquina de estado no terminal, o que era muito difícil com os terminais eletrônicos e mecânicos contemporâneos. Desde então, apenas alguns dos controles originais mantiveram seu uso: a faixa de "espaços em branco" de BS, TAB, LF, VT, FF e CR; o código BEL; e ESC (mas, exceto em ISO-2022-JP , quase sempre como parte de um ESC, '[' representação CSI iniciando uma seqüência de escape ANSI ). Outros não são usados ​​ou adquiriram significados diferentes, como NUL sendo o terminador de string C.

Alguns protocolos de transmissão serial, como ANPA-1312 , Kermit e XMODEM , fazem uso extensivo de caracteres de controle SOH, STX, ETX, EOT, ACK, NAK e SYN para fins que se aproximam de suas definições originais.

Códigos de controle ASCII básicos

Esses são os códigos de controle ASCII padrão, originalmente definidos em ANSI X3.4 . Se estiver usando o mecanismo de extensão ISO / IEC 2022 , eles são designados como o conjunto de caracteres de controle C0 ativo com a seqüência de octeto 0x1B 0x21 0x40( ESC ! @).

Seq Dez Hex Abreviação Símbolo Nome C Descrição
^@ 00 00 NUL Nulo \0 Usado originalmente para permitir que lacunas sejam deixadas na fita de papel para edições. Posteriormente, usado para preenchimento após um código que pode levar algum tempo para o terminal ser processado (por exemplo, um retorno de carro ou alimentação de linha em um terminal de impressão). Agora frequentemente usado como um terminador de string, especialmente na linguagem de programação C.
^A 01 01 SOH Início do rumo Na transmissão da mensagem, delimita o início de um cabeçalho da mensagem. O formato desse cabeçalho pode ser definido por um protocolo aplicável, como IPTC 7901 para transmissão de texto jornalístico, e geralmente é encerrado por STX. No Hadoop , geralmente é usado como separador de campo.
^B 02 02 STX Início do Texto Primeiro caractere do texto da mensagem e pode ser usado para encerrar o cabeçalho da mensagem.
^C 03 03 ETX Fim do Texto Na transmissão da mensagem, delimita o final do texto principal da mensagem. Pode ser seguido por "informações pós-texto" (ou seja, um rodapé estruturado) definido por um protocolo aplicável ou por quaisquer textos adicionais, seguido por EOT. Na entrada do teclado, geralmente usado como um caractere de "quebra" (Ctrl-C) para interromper ou encerrar um programa ou processo.
^D 04 04 EOT Fim da Transmissão Delimita o final de uma mensagem transmitida, que pode incluir um cabeçalho, texto da mensagem e rodapé pós-texto, ou até mesmo textos múltiplos e cabeçalhos associados. Também pode ser usado para colocar terminais em espera. Freqüentemente usado no Unix para indicar o fim do arquivo em um terminal, interpretado pelo shell como o comando exitou logout.
^E 05 05 ENQ Investigação Sinal destinado a acionar uma resposta na extremidade receptora, para ver se ainda está presente.
^F 06 06 ACK Reconhecer Resposta a um ENQ ou uma indicação de recebimento bem-sucedido de uma mensagem.
^G 07 07 BEL Sino , Alerta \a Originalmente usado para fazer soar uma campainha no terminal. Mais tarde, usado para um bipe em sistemas que não tinham campainha física. Também pode ligar e desligar rapidamente o vídeo inverso (um sino visual).
^H 08 08 BS Backspace \b Mova o cursor uma posição para a esquerda. Na entrada, isso pode excluir o caractere à esquerda do cursor. Na saída, onde no início da tecnologia de computador um caractere uma vez impresso não podia ser apagado, o backspace às vezes era usado para gerar caracteres acentuados em ASCII. Por exemplo, àpoderia ser produzido usando a sequência de três caracteres a BS `(ou, usando os valores hexadecimais dos caracteres, 0x61 0x08 0x60). Este uso agora geralmente não é suportado (é proibido, por exemplo, ISO / IEC 8859 ). Para fornecer desambiguação entre os dois usos potenciais de backspace, o código de controle de caractere de cancelamento foi feito parte do conjunto de controle C1 padrão.
^I 09 09 HT Tabulação de caracteres, tabulação horizontal \t Posicione para a próxima parada de tabulação do caractere .
^J 10 0A LF Alimentação de linha \n Em máquinas de escrever , impressoras e alguns emuladores de terminal , move o cursor uma linha para baixo sem afetar a posição da coluna. No Unix, usado para marcar o fim de linha . No DOS , Windows e em vários padrões de rede, LF é usado após CR como parte da marca de fim de linha.
^K 11 0B VT Tabulação de linha, tabulação vertical \v Posicione o formulário na próxima parada de tabulação da linha.
^L 12 0C FF Feed de formulário \f Em impressoras, carregue a próxima página. Tratado como espaço em branco em muitas linguagens de programação e pode ser usado para separar divisões lógicas no código. Em alguns emuladores de terminal, ele limpa a tela. Ele ainda aparece em alguns arquivos de texto simples comuns como um caractere de quebra de página , como os RFCs publicados pela IETF .
^M 13 0D CR Retorno de carruagem \r Usado originalmente para mover o cursor para a coluna zero enquanto permanece na mesma linha. No Mac OS clássico (pré- Mac OS X ), bem como em sistemas anteriores, como o Apple II e o Commodore 64 , usado para marcar o fim de linha . No DOS , Windows e em vários padrões de rede, é usado antes de LF como parte da marca de fim de linha. A tecla Enter ou Return em um teclado enviará esse caractere, mas ele pode ser convertido em uma sequência de fim de linha diferente por um programa de terminal.
^N 14 0E TÃO Shift Out Mude para um conjunto de caracteres alternativo.
^O 15 0F SI Mudar para dentro Retorne ao conjunto de caracteres regular após Shift Out.
^P 16 10 DLE Escape do link de dados Faz com que um número limitado de octetos consecutivos sejam interpretados de alguma maneira diferente, por exemplo, como dados brutos (em oposição a códigos de controle ou caracteres gráficos). Os detalhes disso dependem da implementação.

Padrões como (o agora retirado) ECMA-37 existiam para aplicações específicas do caractere Data Link Escape para acessar funções de controle de transmissão adicionais.

O Esquema de Compressão Padrão para Unicode sugere a substituição de todos os bytes do intervalo C0 por DLE, seguido por esse byte mais 0x40, se os dados SCSU precisarem ser transmitidos por um sistema que seria confundido pelo reaproveitamento dos bytes C0 pelo SCSU.

^Q 17 11 DC1 Controle de dispositivo um ( XON ) Esses quatro códigos de controle são reservados para o controle do dispositivo, com a interpretação dependente do dispositivo ao qual eles foram conectados. DC1 e DC2 foram projetados principalmente para indicar a ativação de um dispositivo, enquanto DC3 e DC4 foram projetados principalmente para indicar pausar ou desligar um dispositivo. DC1 e DC3 (conhecidos também como XON e XOFF respectivamente neste uso) originaram-se como as funções "iniciar e parar leitor de fita de papel remoto" em redes ASCII Telex . Este uso de teleimpressora se tornou o padrão de fato para controle de fluxo de software .
^R 18 12 DC2 Controle de dispositivo dois
^S 19 13 DC3 Controle de dispositivo três ( XOFF )
^T 20 14 DC4 Controle de dispositivo quatro
^U 21 15 NAK Reconhecimento Negativo Enviado por uma estação como uma resposta negativa à estação com a qual a conexão foi estabelecida. No protocolo de comunicação síncrona binária, o NAK é usado para indicar que um erro foi detectado no bloco recebido anteriormente e que o receptor está pronto para aceitar a retransmissão desse bloco. Em sistemas multiponto, o NAK é usado como a resposta não pronta a uma pesquisa.
^V 22 16 SYN Inativo Síncrono Usado em sistemas de transmissão síncrona para fornecer um sinal a partir do qual a correção síncrona pode ser alcançada entre o equipamento terminal de dados, particularmente quando nenhum outro caractere está sendo transmitido.
^W 23 17 ETB Fim do bloco de transmissão Indica o fim de um bloco de transmissão de dados quando os dados são divididos em tais blocos para fins de transmissão.

Se não estiver em uso para outra finalidade, o IPTC 7901 recomenda interpretar ETB como um caractere de fim de parágrafo.

^X 24 18 POSSO Cancelar Indica que os dados anteriores estão errados ou devem ser desconsiderados.
^Y 25 19 EM Fim da mídia Destina-se a indicar em papel ou em fitas magnéticas que o fim da parte utilizável da fita foi atingido. Também pode marcar o fim da parte usada do meio e não corresponde necessariamente ao fim físico do meio.

Se não estiver em uso para outra finalidade, o IPTC 7901 recomenda redefinir o EM como um espaço em para recuar a primeira linha de um parágrafo (consulte também EMSP ).

^Z 26 1A SUB Substituto Originalmente projetado para uso como um caractere de controle de transmissão para indicar que caracteres ilegíveis ou inválidos foram recebidos. Muitas vezes, tem sido usado para outros fins quando a sinalização in-band de erros que fornece é desnecessária, especialmente onde métodos robustos de detecção e correção de erros são usados, ou onde se espera que os erros sejam raros o suficiente para usar o caractere para outros fins aconselháveis. Em DOS , Windows , CP / M e derivados dos sistemas operacionais da Digital Equipment Corporation , é utilizado para indicar o fim do arquivo, tanto na digitação no terminal, quanto às vezes em arquivos de texto armazenados no disco.
^[ 27 1B ESC Fuga \e A tecla Esc do teclado fará com que este caractere seja enviado na maioria dos sistemas. Ele pode ser usado em interfaces de usuário de software para sair de uma tela, menu ou modo, ou em protocolos de controle de dispositivo (por exemplo, impressoras e terminais) para sinalizar que o que se segue é uma seqüência de comando especial em vez de texto normal. Em sistemas baseados na ISO / IEC 2022 , mesmo se outro conjunto de códigos de controle C0 for usado, esse octeto deve sempre representar o caractere de escape.

^\ 28 1C FS Separador de Arquivo Podem ser usados ​​como delimitadores para marcar campos de estruturas de dados. Se usado para níveis hierárquicos, US é o nível mais baixo (dividindo itens de dados de texto simples), enquanto RS, GS e FS são de nível crescente para dividir grupos compostos de itens do nível abaixo dele.

O formato de informação do Unix usa US, seguido por um form-feed opcional e uma quebra de linha, para marcar o início de um nó.

MARC 21 usa US como um delimitador de subcampo, RS como um terminador de campo e GS como um terminador de registro.

Na edição atual do IPTC 7901 , se eles não forem usados ​​para outros fins, US é recomendado para uso como um separador de coluna em tabelas, FS como um "Separador de campo central" em tabelas e GS e RS respectivamente para marcar um espaço a seguir ou hífen-menos como não separável ou suave, respectivamente (em conjuntos de caracteres que não fornecem caracteres NBSP e SHY explícitos).

O splitlinesmétodo de string do Python trata FS, GS e RS, mas não US, como separadores além dos caracteres de quebra de linha.

^] 29 1D GS Separador de Grupo
^^ 30 1E RS Separador de Registro
^_ 31 1F nós Separador de Unidade
Embora não sejam tecnicamente parte da faixa de caracteres de controle C0, os dois caracteres a seguir são definidos na ISO / IEC 2022 como estando sempre disponíveis, independentemente de quais conjuntos de caracteres de controle e caracteres gráficos foram registrados. Eles podem ser considerados como tendo algumas características de personagens de controle.
  32 20 SP Espaço O espaço é um personagem gráfico. Possui uma representação visual que consiste na ausência de um símbolo gráfico. Isso faz com que a posição ativa seja avançada em uma posição de caractere. Em alguns aplicativos, o Espaço pode ser considerado um "separador de palavras" de nível mais baixo a ser usado com os caracteres separadores adjacentes.
^? 127 7F DEL Excluir Tecnicamente, não faz parte do intervalo de caracteres de controle C0, ele foi originalmente usado para marcar caracteres excluídos em fita de papel, uma vez que qualquer caractere poderia ser alterado para todos por meio de furos em todos os lugares. Em terminais compatíveis com VT100 , esse é o caractere gerado pela tecla ⌫, geralmente chamada de backspace em máquinas modernas, e não corresponde à tecla delete do PC .

Nomes de números de categoria

Vários dos códigos de controle ASCII básicos são classificados em algumas categorias e, às vezes, recebem nomes abreviados alternativos que consistem nessa categoria e um número:

  • Controles de transmissão: TC 1 (SOH), TC 2 (STX), TC 3 (ETX), TC 4 (EOT), TC 5 (ENQ), TC 6 (ACK), TC 7 (DLE), TC 8 (NAK) , TC 9 (SYN), TC 10 (ETB).
  • Efetores de formato: FE 0 (BS), FE 1 (HT), FE 2 (LF), FE 3 (VT), FE 4 (FF), FE 5 (CR).
  • Controles do dispositivo: DC 1 , DC 2 , DC 3 , DC 4 .
  • Separadores de informações: IS 1 (EUA), IS 2 (RS), IS 3 (GS), IS 4 (FS).
  • Deslocamentos de bloqueio: LS 0 (SI), LS 1 (SO).
  • Outros: NUL, BEL, CAN, EM, SUB, ESC.

ISO / IEC 2022 (ECMA-35) refere-se às mudanças de bloqueio C0 como LS0 e LS1 em ambientes de 8 bits e como SI e SO em ambientes de 7 bits.

A primeira edição do ASCII, de 1963, classificou o DLE como um controle de dispositivo, em vez de um controle de transmissão, e deu-lhe a abreviatura DC0 ("controle de dispositivo reservado para escape de link de dados").

Os códigos formatadores (FE) definem e atuam na formatação (como quebras de linha ) que afeta como os caracteres gráficos são dispostos e renderizados, ao contrário de controlar outras funções de dispositivos de hardware ou ter outros efeitos colaterais. Os efetores de formato C0 são permitidos nas sequências ISO / IEC 6429 DCS , OSC , PM e APC . Os separadores de informação e efetores de formato C0 (menos BS ) são os únicos códigos de controle C0 com semântica definida pelo Padrão Unicode, a interpretação do restante dos controles C0 sendo deixada para protocolos de nível superior.

ISO / IEC 2022 (ECMA-35) requer que se os conjuntos de códigos de controle C0 incluírem os dez códigos de controle de transmissão ASCII (TC), eles devem ser codificados em seus locais ASCII. Também proíbe os dez controles de transmissão de serem incluídos em um conjunto de códigos de controle C1 e proíbe os controles de transmissão além daqueles dez de serem incluídos em um conjunto de controles C0.

Conjuntos de códigos de controle C0 modificados

Embora os conjuntos de códigos de controle C0 geralmente preservem a maioria dos códigos de controle ASCII inalterados, um número é registrado que substitui certas funções de controle por alternativas. Uma seleção destes, excluindo aqueles relacionados ao Videotex , são mostrados abaixo.

Seq Dez Hex Substituído No (s) conjunto (s) de código Abrev Nome Descrição
^I 09 09 HT NATS, IPTC FO Formatação Usado em dados tabulares para mover para a próxima posição de tabulação (mantendo a semântica de "Tab" a este respeito) e em formatos padrão para denotar a próxima fase. Em vez disso, a especificação IPTC atual recomenda o uso de controles ASCII C0 regulares e o uso do controle dos EUA como uma quebra de coluna nas tabelas.
^K 11 0B VT NATS, IPTC ECD Fim da instrução Delimita o final de uma instrução tipográfica destinada ao dispositivo de composição.
^L 12 0C FF NATS, IPTC SCD Início da instrução Delimita o início de uma instrução tipográfica destinada ao dispositivo de composição.
^M 13 0D CR NATS, IPTC QL Quádrupla Esquerda Termina uma linha, indicando que ela deve ser alinhada à esquerda. Em vez disso, a especificação IPTC atual recomenda o uso de controles ASCII C0 regulares e a representação dessa função com a < CR LFsequência.
^N 14 0E TÃO NATS UR Trilho Superior Inicia uma região enfatizada do texto. Usado na transmissão de texto jornalístico escandinavo a partir de 1975; As recomendações do IPTC em 1976 usavam FT2 e FT3 (veja abaixo). Em vez disso, a especificação IPTC atual recomenda o uso de controles ASCII C0 regulares e a marcação desta função com o ^caractere.
^O 15 0F SI NATS LR Trilho inferior Termina uma região enfatizada do texto. Usado na transmissão de texto jornalístico escandinavo a partir de 1975; As recomendações do IPTC em 1976 usaram FT1 (veja abaixo). Em vez disso, a especificação IPTC atual recomenda o uso de controles ASCII C0 regulares e a marcação dessa função com o @caractere.
^Q 17 11 DC1 IPTC FT1 Font One Muda para a fonte normal, ou seja, desativa negrito ou itálico.
^R 18 12 DC2 IPTC FT2 Fonte Dois Muda para a fonte em itálico.
^S 19 13 DC3 IPTC FT3 Fonte Três Muda para fonte em negrito.
^X 24 18 POSSO NATS, IPTC KW Kill Word Exclui a palavra anterior (exclui de volta e incluindo o último espaço, ou volta e exclui a quebra de linha anterior, o que ela encontrar primeiro). Mantém a semântica "Cancelar" a esse respeito, mas tem uma função mais específica.
^Y 25 19 EM T.61 / T.51 , autônomo SS2 Turno Único Dois Código de mudança sem bloqueio para G2 ; uma representação C0 permitindo que seja representado com um byte em um ambiente de 7 bits.
^\ 28 1C FS NATS, IPTC, autônomo SS, SS2 Super Turno ou Turno Único Dois Código de mudança sem bloqueio .
JIS C 6225 CEX Extensão de controle Introduz uma sequência de controle conforme especificado pelo JIS C 6225 agora retirado, designado JIS X 0207 em fontes posteriores. Isso inclui sequências para controlar o comportamento do texto vertical, sobrescritos e subscritos, e para transmitir gráficos de caracteres personalizados .
^] 29 1D GS NATS, IPTC QC Quad Center Termina uma linha, indicando que ela deve ser centralizada.
T.61 / T.51 SS3 Turno Único Três Código de mudança sem bloqueio para G3 ; uma representação C0 permitindo que seja representado com um byte em um ambiente de 7 bits.
^^ 30 1E RS NATS, IPTC QR Quad Right Termina uma linha, indicando que ela deve ser alinhada à direita.
^_ 31 1F nós NATS, IPTC JY Justificar Termina uma linha que deve ser justificada.

Outros conjuntos de códigos de controle C0

O teletexto define um conjunto totalmente diferente de códigos de controle . Em formatos onde a compatibilidade com os códigos de controle C0 do ECMA-48 não é necessária, esses códigos de controle às vezes são mapeados de forma transparente para a faixa de código de controle Unicode C0 (U + 0000 a U + 001F).

Controles C1

Paralelamente ao desenvolvimento da edição de 1972 da ISO 646 , que revisou a norma para introduzir o conceito de versões nacionais do código além do ASCII originado nos EUA, também estava em andamento um trabalho com o objetivo de definir mecanismos de extensão para ASCII, aplicável a ambientes de 7 e 8 bits, que seriam publicados como ECMA-35 e ISO 2022 .

Esses mecanismos foram projetados para que qualquer código de 8 bits em conformidade pudesse ser convertido em um código de 7 bits correspondente e vice-versa . Em um ambiente de 7 bits, o Fora (Shift SO ) controlo iria mudar o significado dos 94 bytes 0x21através 0x7E(isto é, os códigos de gráficos, excluindo o espaço) para invocar caracteres a partir de um conjunto alternativo, e a mudança de ( SI de controlo) faria mudá-los de volta. Em um ambiente de 8 bits, em vez de usar códigos de deslocamento, o oitavo bit foi definido em um byte que faz referência ao conjunto de caracteres gráficos adicionais. Isso significa que os bytes 0xA1through 0xFEforam usados ​​para os caracteres gráficos adicionais. Os caracteres de controle C0, não sendo afetados pelo estado de deslocamento de um código de 7 bits, deveriam ser sempre representados em um código de 8 bits com o oitavo bit não definido. Conseqüentemente, os bytes não utilizados de outra forma no intervalo 0x80até 0x9Fpodem ser usados ​​para códigos de controle adicionais, que, em vez disso, seriam representados como 0x1B 0x40meio 0x1B 0x5F( ESC @até ESC _) em um código de 7 bits. Esses códigos de controle adicionais tornam-se conhecidos como códigos de controle C1 . Para manter a compatibilidade com a representação de 7 bits, o comportamento dos bytes 0xA0e 0xFFfoi originalmente deixado indefinido.

O primeiro conjunto de códigos de controle C1 a ser registrado para uso com ISO 2022 foi DIN 31626 , um conjunto especializado para uso bibliográfico que foi registrado em 1979. O conjunto ISO / IEC 6429 de uso geral foi registrado em 1983, embora a especificação ECMA-48 no qual se baseou foi publicado pela primeira vez em 1976.

Outras edições das normas alteraram as disposições em certa medida. Por exemplo, uma revisão posterior do ECMA-35 e ISO 2022 em 1985 introduziu o conceito de um conjunto de caracteres gráficos de 96 códigos. Em um código de 8 bits, isto permitiu a toda a gama desde 0xA0a 0xFFde ser usada para caracteres gráficos. O uso de conjuntos de 96 códigos também significa que o significado dos bytes 0x20e 0x7Fdo código de 7 bits correspondente pode ser diferente de "Espaço" e "Excluir", a menos que o código esteja no estado Shift In. O uso de conjuntos de 96 códigos para o conjunto G0 (Shift In) não foi possível.

De acordo com esta estrutura de código ISO 2022 revisada de 8 bits, ISO 8859 define conjuntos de caracteres a serem codificados em 0xA0 – FF, em combinação com os caracteres gráficos ASCII em 0x20–7E, e reserva os bytes fora desses intervalos para uso como códigos não gráficos por outras especificações, como ISO 6429. Unicode herda seus primeiros 256 pontos de código do ISO 8859-1, portanto, também incorpora um intervalo reservado para um conjunto de códigos de controle C1, embora deixe principalmente sua função para ser definida por um nível superior protocolos, com ISO / IEC 6429 sugerido como padrão.

Códigos de controle C1 para uso geral

Esses são os códigos de controle estendidos mais comuns e são definidos na ISO / IEC 6429 , ECMA -48 e JIS X 0211 (anteriormente JIS C 6323). Se estiver usando o mecanismo de extensão ISO / IEC 2022 , eles são designados como o conjunto de caracteres de controle C1 ativo com a sequência 0x1B 0x22 0x43( ESC " C). Embora o Unicode não exija um determinado conjunto de códigos de controle C1, deixando sua interpretação a ser especificada por protocolos de nível superior, e apenas especifique um comportamento para U + 0085, ele sugere a interpretação dos códigos de controle C1 conforme especificado na ISO / IEC 6429 na ausência de uso para outros fins. Também listados na tabela abaixo estão três códigos de controle listados junto com os códigos ISO / IEC 6429 na RFC  1345 , mas não realmente definidos pela ISO / IEC 6429 ( PAD , HOP e SGC ).

Exceto para SS2 e SS3 em texto EUC-JP e NEL em texto transcodificado de EBCDIC , as formas de 8 bits desses códigos quase nunca são usadas. CSI , DCS e OSC são usados ​​para controlar terminais de texto e emuladores de terminal , mas quase sempre usando suas representações de código de escape de 7 bits. Suas representações de byte único em conformidade com ISO / IEC 2022 são inválidas em UTF-8 , e as codificações UTF-8 de seus pontos de código correspondentes têm dois bytes de comprimento como suas formas de código de escape (por exemplo, CSI em U + 009B é codificado como os bytes 0xC2, 0x9B em UTF-8), portanto, não há vantagem em usá-los em vez da sequência de escape equivalente de dois bytes. Quando esses códigos aparecem em documentos modernos, páginas da web, mensagens de e-mail, etc., eles geralmente são destinados a imprimir caracteres nessa posição em uma codificação proprietária, como Windows-1252 ou Mac OS Roman que usam os códigos C1 para fornecer caracteres gráficos adicionais.

Os nomes oficiais em inglês de alguns códigos C1 foram revisados ​​na edição mais recente da norma para códigos de controle em geral (ISO 6429: 1992 ou ECMA-48: 1991) para serem neutros em relação aos caracteres gráficos usados ​​com eles, e não supor que, como na escrita latina, as linhas são escritas em uma página de cima para baixo e que os caracteres são escritos em uma linha da esquerda para a direita. As abreviaturas utilizadas não foram alteradas, pois a norma já havia especificado que permaneceriam inalteradas quando a norma fosse traduzida para outros idiomas. Onde o nome foi alterado, o nome original do qual a abreviatura foi derivada também é fornecido entre parênteses nas tabelas abaixo.

Esc + Dez Hex Acro Nome Descrição
@ 128 80 ALMOFADA Caractere de preenchimento Não faz parte da ISO / IEC 6429 (ECMA-48). Nos primeiros rascunhos da ISO 10646, foi usado como parte de um mecanismo proposto para codificar caracteres não ASCII. Este uso foi removido em rascunhos posteriores. No entanto, é usado pela forma de comprimento fixo de dois bytes de uso interno do Código Unix estendido (EUC) baseado em ISO-2022 para caracteres de byte único de preenchimento à esquerda nos conjuntos de código 1 e 3, enquanto NUL tem a mesma função para o código define 0 e 2. Isso não é feito no formato EUC "compactado" usual.
UMA 129 81 SALTAR Predefinição de octeto alto Não faz parte da ISO / IEC 6429 (ECMA-48). Nos primeiros rascunhos da ISO 10646, pretendia-se ser um meio de introduzir uma sequência de caracteres de bytes múltiplos em conformidade com a ISO 2022 com o mesmo primeiro byte sem repetir o referido primeiro byte, reduzindo assim o comprimento; esse comportamento nunca fez parte de um padrão ou implementação publicada. Mesmo assim, seu nome foi mantido como um nome de ponto de código padrão RFC 1345 .  
B 130 82 BPH Pausa permitida aqui Segue um caractere gráfico onde uma quebra de linha é permitida. Aproximadamente equivalente a um hífen suave, exceto que o meio para indicar uma quebra de linha não é necessariamente um hífen. Não faz parte da primeira edição da ISO / IEC 6429. Consulte também espaço de largura zero .
C 131 83 NBH Sem pausa aqui Segue o caráter gráfico que não deve ser quebrado. Não faz parte da primeira edição da ISO / IEC 6429. Veja também word joiner .
D 132 84 IND Índice Mova a posição ativa uma linha para baixo, para eliminar a ambigüidade sobre o significado de LF. Obsoleto em 1988 e retirado em 1992 da ISO / IEC 6429 (1986 e 1991 respectivamente para ECMA-48).
E 133 85 NEL Próxima Linha Equivalente a CR + LF. Usado para marcar o fim da linha em alguns mainframes IBM.
F 134 86 SSA Início da área selecionada Usado por terminais orientados a bloco .
G 135 87 ESA Fim da área selecionada
H 136 88 HTS Conjunto de tabulação de caracteres Conjunto de
tabulação horizontal
Faz com que uma parada de tabulação de caracteres seja definida na posição ativa.
eu 137 89 HTJ Tabulação de caracteres com justificação
Tabulação horizontal com justificação
Semelhante à tabulação de caracteres, exceto que em vez de espaços ou linhas serem colocados após os caracteres anteriores até a próxima parada de tabulação ser alcançada, os espaços ou linhas são colocados antes do campo ativo de forma que o caractere gráfico anterior seja colocado um pouco antes da próxima parada de tabulação.
J 138 8A VTS Conjunto de Tabulação de Linha Conjunto de
Tabulação Vertical
Faz com que uma parada de tabulação de linha seja definida na posição ativa.
K 139 8B PLD Linha parcial para frente
Linha parcial para baixo
Usado para produzir subscritos e sobrescritos em ISO / IEC 6429 , por exemplo, em uma impressora.
Os subscritos usam enquanto os sobrescritos usam . PLD text PLUPLU text PLD
eu 140 8C PLU Linha Parcial para Trás
Linha Parcial para Cima
M 141 8D RI Índice reverso de alimentação de linha
reversa
N 142 8E SS2 Turno Único 2 O próximo caractere invoca um caractere gráfico dos conjuntos gráficos G2 ou G3, respectivamente. Em sistemas que estão em conformidade com a ISO / IEC 4873 (ECMA-43), mesmo se um conjunto C1 diferente do padrão for usado, esses dois octetos só podem ser usados ​​para essa finalidade.
O 143 8F SS3 Turno Único 3
P 144 90 DCS String de controle do dispositivo Seguido por uma sequência de caracteres imprimíveis (0x20 a 0x7E) e efetuadores de formato (0x08 a 0x0D), terminado por ST (0x9C). Isso pode ser usado por sequências de controle de comprimento variável para terminais de texto e emuladores de terminal, como  consultas de terminfo .
Q 145 91 PU1 Uso Privado 1 Reservado para uma função sem significado padronizado para uso privado conforme necessário, sujeito ao acordo prévio do remetente e do destinatário dos dados.
R 146 92 PU2 Uso Privado 2
S 147 93 STS Definir estado de transmissão
T 148 94 CCH Cancelar personagem Retrocesso destrutivo, destinado a eliminar a ambigüidade sobre o significado de BS .
você 149 95 MW Mensagem em Espera
V 150 96 SPA Início da Área Protegida Usado por terminais orientados a bloco .
C 151 97 EPA Fim da área protegida
X 152 98 SOS Início da corda Seguido por uma string de controle terminada por ST (0x9C) que, ao contrário das iniciadas por DCS , OSC , PM ou APC , pode conter qualquer caractere, exceto SOS ou ST. Não faz parte da primeira edição da ISO / IEC 6429.

O MARC 21 usa SOS e ST em registros no formato Unicode para marcar uma string que deve ser ignorada para fins de agrupamento, enquanto os registros no formato MARC-8 usam NSB e NSE para o mesmo propósito.

Y 153 99 SGC Introdutor de caractere gráfico único Não faz parte da ISO / IEC 6429. Nos primeiros rascunhos da ISO 10646, era usado para codificar um único caractere de bytes múltiplos sem sair do modo HOP . Em rascunhos posteriores, esse recurso foi removido, mas o nome foi mantido como um nome de ponto de código padrão RFC  1345 .
Z 154 9A SCI Introdutor de um único caractere Deve ser seguido por um único caractere imprimível (0x20 a 0x7E) ou formatador (0x08 a 0x0D). A intenção era fornecer um meio pelo qual uma função de controle ou um caractere gráfico que estaria disponível independentemente de qual gráfico ou conjunto de controle estivesse em uso pudesse ser definido. As definições do que o byte seguinte invocaria nunca foram implementadas em um padrão internacional. Não faz parte da primeira edição da ISO / IEC 6429.
[ 155 9B CSI Introdutor de sequência de controle Usado para introduzir sequências de controle que levam parâmetros.
\ 156 9C ST String Terminator Termina uma string de controle de comprimento variável iniciada por DCS , SOS , OSC , PM ou APC .
] 157 9D OSC Comando do sistema operacional Seguido por uma sequência de caracteres imprimíveis (0x20 a 0x7E) e efetuadores de formato (0x08 a 0x0D), terminado por ST (0x9C). Esses três códigos de controle foram concebidos para permitir a sinalização dentro da banda de informações de protocolo, mas raramente são usados ​​para esse propósito.

Alguns emuladores de terminal , incluindo xterm , oferecem suporte a sequências OSC para definir o título da janela e reconfigurar a paleta de cores disponível. Eles também podem suportar o encerramento de uma sequência OSC com BEL como uma alternativa não padrão ao ST padrão.

APC às vezes é usado para transmitir comandos Kermit , embora isso possa ser desabilitado ou filtrado por razões de segurança.

^ 158 9E PM Mensagem de privacidade
_ 159 9F APC Comando do programa aplicativo

Códigos de controle C1 para uso bibliográfico

O seguinte conjunto de código de controle C1 alternativo é definido para aplicativos bibliográficos, como sistemas de biblioteca . Ele se preocupa principalmente com o agrupamento de strings e com a marcação de campos bibliográficos. Ligeiramente diferentes variantes são definidas na norma alemã DIN 31626 (publicado em 1978 e desde retirado) e o ISO padrão ISO 6630 , o último dos quais foi também adoptada na Alemanha como DIN ISO 6630 . Onde eles diferem, é indicado na tabela abaixo, quando aplicável. MARC-8 usa a codificação de NSB e NSE deste conjunto, e adiciona alguns efetores de formato adicionais em locais não usados ​​pela versão ISO; no entanto, MARC 21 usa este conjunto de controle apenas em registros MARC-8, não em registros de formato Unicode.

Se estiver usando o mecanismo de extensão ISO / IEC 2022 , o conjunto DIN 31626 é designado como o conjunto de caracteres de controle C1 ativo com a sequência 0x1B 0x22 0x45( ESC " E), e o conjunto ISO 6630 / DIN ISO 6630 é designado com a sequência 0x1B 0x22 0x42( ESC " B). A expansão de 1985 do conjunto ISO 6630 também pode ser explicitamente especificada usando a sequência 0x1B 0x26 0x40 0x1B 0x22 0x42( ESC & @ ESC " B).

Esc + Dez Hex Acro Nome Descrição
@… F 128… 134 80… 86 - (reservado)
G 135 87 CUS Close-up para classificação (DIN 31626, ISO 6630) Declara que duas sequências de caracteres sucessivas separadas por um espaço ou separador devem ser tratadas como uma palavra para fins de agrupamento.
H 136 88 NSB Caracteres não classificados começam (DIN 31626, ISO 6630, MARC 21) Marca o início de uma sequência de caracteres a ser ignorada para fins de agrupamento. MARC 21 usa esse caractere em registros MARC-8 , mas usa 0x98 ( SOS ) em registros Unicode para o mesmo propósito.
eu 137 89 NSE Fim de caracteres não classificados (DIN 31626, ISO 6630, MARC 21) Marca o final de uma sequência de caracteres a ser ignorada para fins de agrupamento. MARC 21 usa este caractere em registros MARC-8, mas usa 0x9C ( ST ) em registros Unicode para o mesmo propósito.
J 138 8A FIL Caráter de preenchimento (DIN 31626) Substitui um caractere alfanumérico obrigatório em um campo.
K 139 8B TCI Tag no indicador de contexto (DIN 31626) Dentro de um campo bibliográfico, usado para se referir a dados em outro campo bibliográfico por seu número de etiqueta.
PLD Linha parcial para baixo (ISO 6630) Não na edição original da ISO 6630. Na edição de 1985 da ISO 6630, usada para Linha parcial para baixo (ver PLD acima).
eu 140 8C ICI Número de identificação no indicador de contexto (DIN 31626) Dentro de um campo bibliográfico, usado para se referir a dados em outro registro bibliográfico por seu número de identificação.
PLU Alinhamento Parcial (ISO 6630) Não na edição original da ISO 6630. Na edição de 1985 da ISO 6630, usada para Partial Line Up (consulte PLU acima).
M 141 8D OSC Controle de silabificação opcional (DIN 31626) Marca o limite da sílaba em uma palavra longa. Veja também hífen suave .
ZWJ Marceneiro (MARC 21) Em MARC-8, usado para o Joiner de largura zero , enquanto U + 200D é usado em registros MARC de formato Unicode.
N 142 8E SS2 Turno Único 2 (DIN 31626) Código de mudança sem bloqueio, consulte SS2 acima.
ZWNJ Não-associador (MARC 21) Em MARC-8, usado para o Zero-Width Non-Joiner , enquanto U + 200C é usado em registros MARC de formato Unicode.
O 143 8F SS3 Turno Único 3 (DIN 31626) Código de mudança sem bloqueio, consulte SS3 acima.
P 144 90 - (reservado)
Q 145 91 EAB Início da anotação incorporada (DIN 31626, ISO 6630) Marca o início de uma anotação de comprimento variável que é incorporada a um campo bibliográfico, em vez de separada por designação de conteúdo.
R 146 92 EAE Fim da anotação incorporada (DIN 31626, ISO 6630) Marca o final de uma anotação incorporada de comprimento variável.
S 147 93 É B Início da Especificação do Item (DIN 31626) Marca o início de uma sequência de informações específicas de alguma descrição, que não seja uma palavra-chave ou uma sequência de permutação.
T 148 94 ISE Fim da especificação do item (DIN 31626) Marca o final de uma série de informações específicas.
você 149 95 SIB Início da Interpolação de Classificação (ISO 6630) Marca o início de uma sequência de caracteres usada apenas para fins de agrupamento.
V 150 96 SIE Classificando o Fim da Interpolação (ISO 6630) Marca o final de uma sequência de caracteres usada apenas para fins de agrupamento.
C 151 97 SSB Início do valor de classificação secundária (ISO 6630) Marca o início de uma string com valor de agrupamento subordinado.
X 152 98 SSE Fim do valor de classificação secundária (ISO 6630) Marca o final de uma string com um valor de agrupamento subordinado.
Y 153 99 INC Indicador para Caráter Não Padrão (DIN 31626) Identifica um caractere não padrão a seguir.
Z 154 9A - (reservado)
[ 155 9B - (reservado)
\ 156 9C KWB Início de palavra-chave (DIN 31626, ISO 6630) Marca o início de uma palavra-chave em um campo bibliográfico.
] 157 9D KWE Fim da palavra-chave (DIN 31626, ISO 6630) Marca o final de uma palavra-chave em um campo bibliográfico.
^ 158 9E PSB Início da string de permutação (DIN 31626, ISO 6630) Marca o início de uma string que deve ser permutada para a frente do elemento quando referências ou índices são gerados. Terminado por PSE ou pelo fim do elemento.
_ 159 9F PSE Fim da string de permutação (DIN 31626, ISO 6630) Marca o final de uma string que deve ser permutada para a frente do elemento.

Outros conjuntos de códigos de controle C1

EBCDIC define 16 códigos de controle adicionais, além dos presentes em ASCII. Quando mapeados para Unicode ou ISO 8859 , esses códigos são mapeados para caracteres de controle C1 de uma maneira especificada pela Character Data Representation Architecture (CDRA) da IBM.

Embora o mapeamento padrão do controle New Line (NL) corresponda ao ISO / IEC 6429 NEL (0x85; embora seu mapeamento seja às vezes trocado com LF, seguindo a convenção de final de linha do UNIX), o restante dos códigos de controle não correspondem a ISO / IEC 6429. Por exemplo, o SPS de controle EBCDIC (0x09, mapeado para 0x8D) e o PLU de controle ECMA-48 (0x8C) são usados ​​para iniciar um sobrescrito ou terminar um subscrito, mas não são mapeados um para o outro. EBCDIC mapeado em ASCII estendido pode, portanto, ser considerado como tendo seu próprio conjunto C1, embora não seja registrado com o registro ISO-IR para uso com ISO / IEC 2022 .

Vários conjuntos de códigos de controle C1 especializados são registrados para uso por vários formatos de Videotex .

Unicode

O Unicode reserva 65 pontos de código na categoria geral "Cc" (Controle) para compatibilidade com ISO / IEC 2022 . Os códigos de controle nesta categoria cobrem U + 0000 — U + 001F (controles C0), U + 007F (excluir) e U + 0080 — U + 009F (controles C1). Unicode especifica apenas a semântica para U + 0009 — U + 000D, U + 001C — U + 001F e U + 0085. O resto dos códigos de controle são transparentes para Unicode e seus significados são deixados para protocolos de nível superior.

Unicode não possui pontos de código de categoria "Cc" alocados além dos C0 e C1. No entanto, ele inclui caracteres efetores de formato adicionais além daqueles nos conjuntos de controle C0 e C1, como marcas, embebe, isola e estala para formatação bidirecional explícita e junta e não junta de largura zero para controlar o uso da ligadura. Eles recebem a categoria geral "Cf" (Formato) em vez de "Cc".

Veja também

Notas de rodapé

Referências