# require socat *2* !!! socat tcp-listen:6666,reuseaddr 'system1:"perl -CI recode.pl 1" % system1:"perl -CO recode.pl 0" | tcp:irc.friend-chat.jp:6667' # in irssi /connect localhost 6666 # save as recode.pl: #!/usr/bin/perl -lp use Encode qw(encode decode); BEGIN { $|++; *z=shift()?*encode:*decode } $_ = z("iso-2022-jp", $_) # or with automatic decode guess: #!/usr/bin/perl -lp use Encode qw(encode decode); use Encode::Guess; BEGIN { $|++; my @enc = qw(euc-jp shiftjis 7bit-jis); *z=shift()?sub{$_=encode("iso-2022-jp",$_)} :sub{ my $enc = guess_encoding($_,@enc); $enc = do { local $Encode::Guess::NoUTFAutoGuess=1; guess_encoding($_,@enc) } unless ref $enc; $_ = $enc->decode($_) if ref $enc; } } z()