# Charset plugin

Charset plugin lets you encode or decode data using charsets, with 3 levels: global, by server, or by channel. This plugin is optional, but recommended: if it's not loaded, WeeChat can only read/write UTF-8 data.

Charset plugin should be autoloaded by WeeChat at startup. To be sure plugin is loaded, try: "`/charset`". If command is not found, then load plugin with command:

    /plugin load charset

If plugin is not found, then you should compile again WeeChat with plugins and Charset support.

When Charset plugin starts, it displays terminal and internal charsets. Terminal charset depends on your locale, and internal is UTF-8. For example :

    -P- Charset plugin starting, terminal charset: ISO-8859-15 (WeeChat internal: UTF-8)

## Settings

- To set global decode and encode charsets, use "`/setp`" command. For example:

      /setp charset.global.decode = ISO-8859-15
      /setp charset.global.encode = ISO-8859-15

  If global decode charset is not set (for example during first load of Charset plugin), it will be automatically set to terminal charset (if it's different from UTF-8), or by default to "`ISO-8859-1`". Default encode value is empty, so it sends by default with internal charset (UTF-8).

- To set server charset, use "`/charset`" command on server buffer. If you give only charset, then it will set "decode" and "encode" values. For example:

      /charset ISO-8859-15

  It's equivalent to:

      /charset decode ISO-8859-15
      /charset encode ISO-8859-15

- To set channel (or private) charset, use same commands as server, but on channel (or private) buffer.

## FAQ

If you have problems with chars or accents using Charset plugin:

- check that weechat-curses is linked to libncursesw (warning: needed on most distributions but not all) :

      ldd /path/to/weechat-curses

- check charset line (on server buffer), you should see ISO-XXXXXX or UTF-8 for terminal charset. If you see ANSI_X3.4-1968 or other values, probably your locale is wrong.

- setup global decode value, for example:

      /setp charset.global.decode = ISO-8859-15