Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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

1 Answer 1

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.