ISO-646 was the first attempt to standardize an international character set. Unlike modern 8-bit international character sets like ISO-8859 that map non-latin characters to high numbers unused by ASCII, the 7-bit ISO-646 replaces some of the ACSII punctuation characters of lesser importance.

By sticking with with 7 bits, ISO-646 was usable on equipment designed for 7 bit ASCII with minimal changes. The downside was the omitted characters, widely used in programming languages like C and Pascal, couldn't be used, leading to ugly work-arounds like trigraphs and digraphs.

Rather than one mapping, ISO-646 consists of many national variations. In each case, some or all of the following ASCII characters are replaced with local characters: # @ [ \ ] ^ _ ` { | } ~. In ISO-646-DE (the German variant), # ^ _ `stay the same and @ [ \ ] { | } ~ are replaced by § Ä Ö Ü ä ö ü ß, respectively. The phrase "Grüß Gott" would be encoded as "Gr}~ Gott". To further confuse things, the same character may be encoded differently for different regions. For example, in ISO-646-FR (the French variant), é is encoded as {, but in ISO-646-IT (the Italian variant), it is encoded as `.

With only twelve characters to work with, this scheme obviously had no hope of dealing with non-latin alphabets. Even the latin alphabets had to take only the most important accented letters and symbols and weigh them against the usefulness of the punctuation symbols they would replace. The encodings for the Western European countries where ISO-646 was used are shown below:

ASCII hex CH  DE  ES  FI  FR  IT  NL  NO  PT  SE
#     23  ù       £       £   £   £
@     40  à   §   §       à   §   ¾           É
[     5B  é   Ä   ¡   Ä   °   °   ½   Æ   Ã   Ä
\     5C  ç   Ö   Ñ   Ö   ç   ç   ÿ   Ø   Ç   Ö
]     5D  ê   Ü   ¿   Å   §   é   |   Å   Õ   Å
^     5E  î           Ü               Ü
_     5F  è
`     60  ô           é           ù   é
{     7B  ä   ä   °   ä   é   ¨   à   æ   ã   ä
|     7C  ö   ö   ñ   ö   ù   ò   ƒ   ø   ç   ö
}     7D  ü   ü   ç   å   è   è   ¼   å   õ   å
~     7E  û   ß       ü   ¨   ì   ´           ü

And you thought ISO-8859 caused problems....

Log in or register to write something here or to contact authors.