Go to the first, previous, next, last section, table of contents.


Why character set translation tables are needed

DOS uses a different character code mapping than Unix. 7-bit characters still have the same meaning, only characters with the eight bit set are affected. To make matters worse, there are several translation tables available depending on the country where you are. The appearance of the characters is defined using code pages. These code pages aren't the same for all countries. For instance, some code pages don't contain upper case accented characters. On the other hand, some code pages contain characters which don't exist in Unix, such as certain line-drawing characters or accented consonants used by some Eastern European countries. This affects two things, relating to filenames:

upper case characters
In short names, only upper case characters are allowed. This also holds for accented characters. For instance, in a code page which doesn't contain accented uppercase characters, the accented lowercase characters get transformed into their unaccented counterparts.
long file names
Micro$oft has finally come to their senses and uses a more standard mapping for the long file names. They use Unicode, which is basically a 32 bit version of ASCII. Its first 256 characters are identical to Unix ASCII. Thus, the code page also affects the correspondence between the codes used in long names and those used in short names

Mtools considers the filenames entered on the command line as having the Unix mapping, and translates the characters to get short names. By default, code page 850 is used with the Swiss uppercase/lowercase mapping. I chose this code page, because its set of existing characters most closely matches Unix's. Moreover, this code page covers most characters in use in the USA, Australia and Western Europe. However, it is still possible to chose a different mapping. There are two methods: the country variable and explicit tables.


Go to the first, previous, next, last section, table of contents.