O GLOBO - Informática Etc.
Carlos Alberto Teixeira - C@T

Trocando as letras

Artigo: 553

 A sopa alfabética que explica um desagradável fenômeno

Publicado em:  2002-10-28
Escrito em:  2002-10-25

 

Algumas leitoras andaram tendo problemas com os subjects (assuntos) de seus emails e perguntaram o que estava acontecendo. Nada muito sério nem muito freqüente, mas é algo que incomoda. O que se passa é que, quando enviam mensagens cujos assuntos contêm caracteres acentuados, em alguns casos, o destinatário recebe este campo com algumas letras trocadas, justamente as originalmente acentuadas. Em outras situações dá o inverso, ou seja, algumas pessoas recebem emails cujos assuntos têm letras trocadas, quando originalmente o remetente as digitou com letras acentuadas ou cedilha.

A explicação é muito simples, muito embora o histórico de suas causas e os antecedentes administrativos, normativos e técnicos por trás do fenômeno sejam um pouco confusos para o leigo. Tentando atenuar ao máximo este rolo, basta dizer que alguns servidores de correio eletrônico estão configurados para processar o campo "assunto" com caracteres de apenas sete bits. Quando se digita um caractere acentuado no assunto da mensagem, na verdade se está digitando algo que tem oito bits. Assim, um sistema que só enxergue sete bits vai pegar o campo "assunto" e cegamente transformar qualquer coisa aparentemente maluca em algo que tenha apenas sete bits. É assim que as letrinhas são trocadas. Mailservers funcionando no padrão MIME (Multipurpose Internet Mail Extensions) geralmente não apresentam este problema.

Para quem nunca entendeu direito esse negócio de bits e bytes, é preciso lembrar que sua máquina só entende números binários, ou melhor, zeros e uns. Qualquer caractere digital, seja letra, número ou pontuação, nada mais é do que uma tripa codificada de zeros e uns. Um bit é um dígito binário, podendo valer zero ou um. Bem no início da computação, quando se quis codificar as letras e números comuns usando bits, os camaradas decidiram que juntando oito bits poderiam fazer uma festa, codificando todos os caracteres imagináveis. Que tolinhos. Mas tudo bem, foi assim que fizeram na época e salamaleque para eles, pois estavam inventando algo novo e que mudaria a Humanidade. Juntaram oito bits e chamaram o pacotinho de byte. Cada byte representaria um caractere e, para não encher o saco com a cansativa representação binária, adotaram uma notação em paralelo, usando a base numérica 16, ou sistema hexadecimal. Foi aí que entraram em cena as tabelas de conversão.

Existem diversas tabelas para correlacionar cada caractere a um valor binário. Um bom quadro comparativo que mostra algumas destas tabelas históricas "padronizadas" pode ser encontrado na base de conhecimento da Universidade de Indiana, nos EUA. Uma das tabelas mais famosas e tradicionais é a do código ASCII (American [National] Standard Code for Information Interchange). Ela tem apenas 128 itens, todos eles sendo caracteres de apenas 7 bits. Isso mesmo, você já começou a sacar a coisa. Os servidores de email que chateiam as leitoras só processam assuntos escritos com caracteres em puro e antiquado código ASCII.

Bem, logo que começou a dar confusão no mundo dos códigos, a rapaziada se pôs a criar tabelas cada vez mais poderosas e abrangentes. Durante um bom tempo reinou a tabela adotada pelo Windows da Microsoft, que na verdade é uma sopa alfabética, cujo conjunto se chama ISO-8859. São na verdade 10 dialetos tabulares de oito bits projetados para atender à escrita de quase todos os idiomas existentes. O que usamos é o ISO-8859-1, vulgo Latin1, que abrange as línguas da Europa Ocidental, tais como: albanês (sq), alemão (de), basco (eu), catalão (ca), dinamarquês (da), escocês (gd), espanhol (es), finlandês (fi), francês (fr), holandês (nl), idioma das Ilhas Färoe (fo), inglês (en), irlandês (ga), islandês (is), italiano (it), norueguês (no), português (pt), reto-romano (rm) e sueco (sv). Atende até afrikaans (af) e swahili (sw), mas deixa de fora o zulu (zu) e outros idiomas bantu, além do árabe do norte da África e o guarani. Curiosidade é que, com a criação da moeda Euro, o símbolo deste padrão monetário abriu a discussão sobre um dialeto Latin0. A codepage (página de código) 1252 usada pelo Windows, com o nome WinLatin1, segue a mesma codificação ISO-8859-1.

O vôo seguinte, muito bem explicado no impecável site de Roman Czyborra, foi o Unicode ou ISO-10646, cujo dialeto UTF-16, com códigos de 32 bits, abrange realmente todos os idiomas existentes e até alguns oficialmente inexistentes e ficticiamente extragalácticos, como a legendária língua Klingon da série Jornada nas Estrelas (Star Trek).

Bem, deixando de lado as galáxias e voltando à vaca fria, as leitoras que reclamaram da troca de letras notaram que as substituições eram sempre as mesmas. Por exemplo, "ç" sempre virava "g", "é" sempre se transformava em "i" e "õ" sempre mudava para "u". Mas é assim mesmo que o "defeito" se dá. No Windows, um caractere de 8 bits é truncado para 7 bits sempre do mesmo jeito, ou seja, subtraindo o valor hexadecimal 80 (ou binário 10000000) do seu valor no código WinLatin1, acima mencionado. Se você não está nem aí para subtrações em hexadecimal e quer saber como se dão as trocas de letras, então divirta-se com a tabelinha que se segue. Cada dupla de caracteres entre parênteses representa uma troca. Assim, "À" vira "@", "Á" vira "A" e assim vamos. Eis a tabela: (À/@), (Á/A), (Â/B), (Ã/C), (Ä/D), (Ç/G), (É/I), (Ê/J), (Ë/K), (Í/M), (Ï/O), (Ó/S), (Ô/T), (Õ/U), (Ö/V), (Ú/Z), (Ü/ \ ), (à/ ` ), (á/a), (â/b), (ã/c), (ä/d), (ç/g), (é/i), (ê/j), (ë/k), (í/m), (ï/o), (ó/s), (ô/t), (õ/u), (ü/v), (ú/z) e finalmente (ü/ | ).

Ou melhor:

8 bits

7 bits

Hexa

Caractere

Caractere

Hexa

C0

À

@

40

C1

Á

A

41

C2

Â

B

42

C3

Ã

C

43

C4

Ä

D

44

C7

Ç

G

47

C9

É

I

49

CA

Ê

J

4A

CB

Ë

K

4B

CD

Í

M

4D

CF

Ï

O

4F

D3

Ó

S

53

D4

Ô

T

54

D5

Õ

U

55

D6

Ö

V

56

DA

Ú

Z

5A

DC

Ü

\

5C

E0

à

`

60

E1

á

a

61

E2

â

b

62

E3

ã

c

63

E4

ä

d

64

E7

ç

g

67

E9

é

i

69

EA

ê

j

6A

EB

ë

k

6B

ED

í

m

6D

EF

ï

o

6F

F3

ó

s

73

F4

ô

t

74

F5

õ

u

75

F6

ü

v

76

FA

ú

z

7A

FC

ü

|

7C

 

Por causa dessa gracinha dos servidores de mensagens, o destino já pregou muita peça em gente distraída. Eu mesmo já passei por um embaraçoso vexame profissional quando há poucos meses enviei uma nota para a Parabólica do Globonews.com com o seguinte assunto: "Caçadas Hi-Tech". Considerando que o mailserver de lá também troca letrinhas no "subject", consulte a tabela acima e descubra como foi que o cabeçalho "assunto" da tal mensagem apareceu aos olhos surpresos dos meus amigos na Redação.

[ Voltar para o índice de 2002 ]

[ O Globo | Informática Etc. | coluna mais recente | enviar email
página pessoal C@T
| assinar lista InfoEtc | assinar GoldenList do C@T ]


powered by FreeFind