charset(1) Set an ACM for use in one of the G0/G1 charset slots.


charset [-v] G0|G1 [cp437|iso01|vt100|user|<acm_name>]


The linux console has 2 slots for charsets, labeled G0 and G1. charset changes the slot in use by the current VT to either G0 or G1, and fills the slot either with one of the 3 predefined ACMs (cp437, iso01, vt100) or with a user-defined ACM.

You can ask for the current user-defined ACM by specifying user, or ask a new ACM to be loaded from a file into the user slot, by specifying a filename.

You will note that, although each VT has its own slot settings, there is only one user-defined ACM for all the VTs. That is, whereas you can have tty1 using G0=cp437 and G1=vt100, at the same time as tty2 using G0=iso01 and G1=iso02 (user-defined), you cannot have at the same time tty1 using iso02 and tty2 using iso03. This is a limitation of the linux kernel.

Note that you can emulate such a setting using the filterm(1) utility, with your console in UTF8-mode, by telling filterm to translate screen output on-the-fly to UTF8.

You'll find filterm(1) in the konwert(1) package, by Marcin Kowalczyk, which is available from


be verbose. charset will then print what it does as it does it.


charset cannot determine which of the 2 slots is in use at a given time, so you have to tell him which one you want, even if you don't want to change to the other one. This is a limitation of the console driver.