If character sets must be switched then the terminfo variables: enacs, rmacs, and smacs should be defined. Note acs = Alternate Character Set. Even if the upper half of the normal character set contains the graphic characters it may be considered a separate 7-bit character set that needs to be switched to.
National Replacement Characters (obsolete)
In the 1960's, the ASCII 7-bit code was devised to map 7-bit bytes to English letters, numbers, punctuation marks, etc. Other countries adopted ASCII, but most of them had some additional letters which were not present in the ASCII code. What to do? Various people decided to purge certain symbols (such as ^, }) from ASCII and to substitute national letters (ones with dots over them, etc.) for the ASCII letters. In other words they replaced ASCII letters with "National Replacement Characters"
There were a lot of problems with this, since it was done mostly by companies which sold computer terminals with a resulting lack of standardization. Another problem was that sometimes the purged symbols were needed. This problem was solved in the 1980's and 1990's with the adoption of 8-bits/byte character sets which had many more letters.
Many West-European languages only needed several additional letters
which were not in ASCII. To get them in 7-bit code, they borrowed the
codes for seldom used ASCII symbols:
@ [ \ ] ^ ' { \
} ~
The symbols $ and # are sometimes used also. So
when using these replacement character sets, you are deprived of using
certain of these ASCII symbols since they now are used for the new
non-ASCII letters. Now that 8-bit character codes have replaced 7-bit
ones, it's better to use an 8-bit code which has both all the ASCII
symbols plus the non-ASCII characters for various languages. There's
also Unicode which replaces 8-bit codes with the same code scheme to
cover all languages (well almost all significant ones).
ISO-646 (for 1972 and later) permitted using National Replacement Characters (7-bit). It specified that the above mentioned character codes may be borrowed, but doesn't specify which national characters are to replace them. Some countries standardized the replacements by registering them with ECMA.
Many terminals exist which support these national replacement characters but you probably don't want to implement this support unless you have some old files to read. Very old terminals may only support the national characters for the country in which they were sold. Later terminals offered a choice of languages. Modem terminals are 8-bit and don't need "national replacements". Replacement characters exist for the following languages/countries: British, Cuba (Spanish), Dutch, Finnish, French, French Canadian, German, Hebrew, Hungarian, Italian, Norwegian/Danish, Portuguese, Spanish, Swedish, Swiss (German).
Here's tables for some character sets taken from Kermit and Unisys documents:
Swedish Danish
ASCII German Finnish Norwegian French
@ at-sign section ------- ------- a-grave
[ left-bracket A-diaeresis A-diaeresis AE-digraph degree
/ backslash O-diaeresis O-diaeresis O-slash c-cedilla
] right-bracket U-diaeresis A-circle A-circle section
^ circumflex ------ U-diaeresis ------- -------
' accent-grave ------ e-acute ------- -------
{ left-brace a-diaeresis a-diaeresis ae-digraph e-acute
| vertical-bar o-diaeresis o-diaeresis o-circle u-grave
} right-brace u-diaeresis a-circle a-circle e-grave
~ tilde ess-zet u-diaeresis -------- diaeresis
ASCII Italian Spanish
@ at-sign section section
[ left-bracket degree inverted-exclamation
/ backslash #-pound N-tilde
] right-bracket e-acute inverted-question-mark
^ circumflex ------- -------
' accent-grave u-grave -------
{ left-brace a-grave degree
| vertical-bar o-grave n-tilde
} right-brace e-grave --------
~ tilde

