Resumo

  • O RFC 1557, de dezembro de 1993, descreveu o corpo de um e-mail em ISO-2022-KR: início em ASCII, designação de KSC 5601 por ESC $ ) C, entrada nos caracteres coreanos por SO e volta a ASCII por SI.
  • No cabeçalho, o coreano era expresso em EUC-KR e embalado como palavra codificada B ou Q do RFC 1522. O assunto e o texto seguiam contratos de leitura diferentes.

A reunião mudou. O assunto soube primeiro.

Uma pessoa recebe um aviso em coreano de que a reunião mudou de horário. O assunto aparece normal; o novo horário, no corpo, vira uma sequência de sinais estranhos. Parece capricho do computador, mas há uma fronteira técnica bem definida. O programa que leu corretamente uma parte talvez tenha escolhido o decodificador errado para a outra.

O RFC 822 separava os campos estruturados do cabeçalho do corpo, depois de uma linha vazia. Endereços, pontuação e dobras de linha no cabeçalho obedeciam a regras próprias. Servidores podiam refazer uma dobra ou reorganizar destinatários. O corpo vinha como texto contínuo. Colocar coreano nos dois lugares exigia respeitar essas condições, em vez de fingir que a tela única significava um único fluxo de bytes.

U. Choi, K. Chon e H. Park descreveram a solução no RFC 1557. Segundo os autores, o método havia sido estabelecido em 1991 e já circulava amplamente nas redes IP coreanas. O documento de 1993 trata de mensagens de texto simples. O ponto decisivo é a divisão de trabalho: no corpo, sete bits e mudanças explícitas de estado; no cabeçalho, outra representação de caracteres envolta em ASCII imprimível.

O corpo começa em ASCII. A sequência ESC $ ) C designa o conjunto KSC 5601, que inclui hangul e hanja. SO muda a interpretação para pares de bytes desse conjunto; SI devolve a leitura a ASCII. O nome MIME do corpo é ISO-2022-KR. Pense numa chave ferroviária: o trecho que chega só faz sentido depois de saber para qual trilho o último comando apontou. Guardar as letras renderizadas sem os comandos é perder o mapa da viagem.

Há uma sutileza no texto original. A explicação em prosa localiza a designação no começo de uma linha, antes de SO. A gramática formal permite uma designação antes de várias linhas que contenham coreano. Os autores afirmam que, em caso de divergência, prevalece a gramática. Por isso uma inspeção séria segue a posição real de ESC $ ) C, SO e SI no arquivo; não inventa uma obrigação de repetir a designação em toda linha.

Como o corpo usa sete bits, diz o RFC, não precisava de um cabeçalho Content-Transfer-Encoding por esse motivo. Os autores também registraram que os programas coreanos disponíveis então não aplicavam Base64 ou Quoted-Printable sobre o corpo já codificado. Essa observação retrata o software da época. A identificação ISO-2022-KR continuava necessária para dizer ao leitor qual gramática de mudanças estava diante dele.

No assunto, a engrenagem troca de marcha. O coreano aparece como EUC-KR, depois vira uma palavra codificada B ou Q conforme o RFC 1522. A estrutura =?charset?encoding?encoded-text?= põe caracteres imprimíveis do lado de fora e a instrução de reconstrução por dentro. O cabeçalho diz EUC-KR; o corpo diz ISO-2022-KR. Um leitor que entregar ambos ao mesmo decodificador pode produzir o erro que depois tentará diagnosticar.

É uma solução de época bastante engenhosa: cada parte da mensagem recebe a embalagem adequada aos programas que a manipulam. Para quem lê, o resultado deveria ser uma carta fluida. O RFC 1557 deixa à vista a emenda escondida entre assunto e texto — justamente o lugar onde um arquivo antigo pode se abrir.