alternate charset

Andy Koppe
Thu Sep 24 12:23:00 GMT 2009

2009/9/24 Corinna Vinschen:
>> > The alternate
>> > charset, typically only used for the graphical characters anyway,
>> > could be either CP 437, or what GetOEMCP() returns.
>> I think the alternate charset should be fixed to CP437. That's what
>> PuTTY and mintty do, and here's the relevant line from
>>, the man page for the Linux
>> console:
>> ESC ( U               Select null mapping - straight to character ROM
>> And from the CP437 wikipedia page:
>> "Today, [CP437] is still the primary font in the core of any EGA and
>> VGA compatible graphic card, i.e. the text you can see on screen when
>> a PC reboots, before any other font can be loaded from a storage
>> medium, is rendered with this code page."
>> (Btw, the "alternate charset" is a PC-specific thing. vt100 and xterm
>> don't have it.)
> Erm?  AFAIK VT220 terminals already had multiple fonts, including a
> font with the typical graphical frame and block characters.  There
> were ESC sequences to switch between those fonts to allow nice forms
> and sheet display.

From "Random facts you never wanted to know about terminals" Vol. 3:

There are two different graphical character charsets:
- The VT100 linedraw character set, to be found throughout the VT
series and also in xterm and rxvt. This is selected with "\e(0", and
replaces characters 0x60 through 0x7F with various oddities.
- The "Alternate Character Set" (ACS, aka "VGA", "OEM", or, whisper
it, "sco"), which is found in e.g. in the Linux console and the Cygwin
console. This is selected with "\e(U", switching 0x80..0xFF to CP437.

PuTTY and mintty support both. Attached is a test file created by
Thomas Wolff that exercises these two and also Unicode's box drawing


More information about the Cygwin-developers mailing list