Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm looking for an IRC client that would let me set different encoding per-channel, not just per-network. It should be scriptable.

Currently I see those options

  • ChatZilla. Has the per-channel options. Scriptable in JS. :)
  • Quassel. Encoding setting only per network. Not scriptable.
  • XChat. Encoding setting only per network. Scriptable in Perl, Python, maybe others.
  • Smuxi. Encoding setting only per network. Not scriptable.
  • IRSSI. Encoding per-network at best. Scriptable in Perl.
  • KVIrc. Encoding per-channel. Scriptable in Perl and KVIrc language.

The client can be GUI or CLI. I would appreciate if you would additional options to the first & last items in the list that seems working for what I asked (the first one is an in-browser client and eats RAM after a short uptime as the channel messages are an HTML table: adding 500 lines to a table and removing 500 lines has a remarkable memory footprint).


share|improve this question

Both irssi and Weechat have per-channel encodings.

  • Weechat (scriptable in Perl, Python, Ruby, Tcl, Guile and C [plugins]; actively developed)

    For current buffer:

    /charset encode koi8-r
    /charset decode koi8-r

    For a given buffer:

    /set charset.encode.irc.freenode.#postfix-ru koi8-r
    /set charset.decode.irc.freenode.#postfix-ru koi8-r

    For a given network:

    /set charset.encode.irc.rusnet cp1251
    /set charset.decode.irc.rusnet cp1251


    /set charset.default.encode utf-8
    /set charset.default.decode iso8859-1

    Note: Weechat always tries UTF-8 first, and uses charset.default.decode as fallback. If this causes problems, it's likely to be fixed quickly when reported.

  • irssi (scriptable in Perl and C [plugins]):

    For a given network tag/channel:

    /recode add freenode/#postfix-ru koi8-r

    For a given network tag:

    /recode add rusnet cp1251


    /set recode_out_default_charset utf-8
    /set recode_fallback iso8859-1

    Note: "network tag" can differ from network name; if you do /connect freenode twice, it will open connections tagged freenode and freenode2.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.