rendered paste body# ISO2UTF - replacing ISO-8859-8 (hebrew) to UTF
# Thanks to Michael Kowalchuk's Incoming word filter
# Which is where I learned the XCHAT interface from.
#
# TAsn <ttasnn@gmail.com>
# March 20, 2007
#
# translates incoming ISO-8859-8 text (hebrew) to UTF-8
# USAGE:
#Just Load The Script
#
# Register the script with X-Chat 2
Xchat::register( "ISO2UTF", "0.1", "", "" );
IRC::add_command_handler("iso2utf","iso2utf");
IRC::add_command_handler("i2ucharset","setcharset");
# Add message handler for PRIVMSGs
Xchat::hook_print("Channel Message", "replace",
{ data => ['Channel Message'] } );
Xchat::hook_print("Private Message", "replace",
{ data => ['Private Message'] });
Xchat::hook_print("Private Message to Dialog", "replace",
{ data => ['Private Message to Dialog'] } );
$target_charset="iso-8859-8"; #default charset
# Replace - Just replaces $target_charset to UTF-8
sub replace {
#$_[0] - array reference containing the values for the text event see Settings->Lists->Text Events
#$_[1] - the data that was passed to the hook function
( $nick, $message, $mode, $extra ) = @{ $_[0] };
$data = $_[1][0];
#require Encode;
#$message = Encode::decode_utf8($message);
#$message = Encode::decode($target_charset,$message);
#$message = Encode::encode_utf8($message);
$message =~ s/\x{c3}\x{a0}/\x{d7}\x{90}/g;
$message =~ s/\x{c3}\x{a1}/\x{d7}\x{91}/g;
$message =~ s/\x{c3}\x{a2}/\x{d7}\x{92}/g;
$message =~ s/\x{c3}\x{a3}/\x{d7}\x{93}/g;
$message =~ s/\x{c3}\x{a4}/\x{d7}\x{94}/g;
$message =~ s/\x{c3}\x{a5}/\x{d7}\x{95}/g;
$message =~ s/\x{c3}\x{a6}/\x{d7}\x{96}/g;
$message =~ s/\x{c3}\x{a7}/\x{d7}\x{97}/g;
$message =~ s/\x{c3}\x{a8}/\x{d7}\x{98}/g;
$message =~ s/\x{c3}\x{a9}/\x{d7}\x{99}/g;
$message =~ s/\x{c3}\x{aa}/\x{d7}\x{9a}/g;
$message =~ s/\x{c3}\x{ab}/\x{d7}\x{9b}/g;
$message =~ s/\x{c3}\x{ac}/\x{d7}\x{9c}/g;
$message =~ s/\x{c3}\x{ad}/\x{d7}\x{9d}/g;
$message =~ s/\x{c3}\x{ae}/\x{d7}\x{9e}/g;
$message =~ s/\x{c3}\x{af}/\x{d7}\x{9f}/g;
$message =~ s/\x{c3}\x{b0}/\x{d7}\x{a0}/g;
$message =~ s/\x{c3}\x{b1}/\x{d7}\x{a1}/g;
$message =~ s/\x{c3}\x{b2}/\x{d7}\x{a2}/g;
$message =~ s/\x{c3}\x{b3}/\x{d7}\x{a3}/g;
$message =~ s/\x{c3}\x{b4}/\x{d7}\x{a4}/g;
$message =~ s/\x{c3}\x{b5}/\x{d7}\x{a5}/g;
$message =~ s/\x{c3}\x{b6}/\x{d7}\x{a6}/g;
$message =~ s/\x{c3}\x{b7}/\x{d7}\x{a7}/g;
$message =~ s/\x{c3}\x{b8}/\x{d7}\x{a8}/g;
$message =~ s/\x{c3}\x{b9}/\x{d7}\x{a9}/g;
$message =~ s/\x{c3}\x{ba}/\x{d7}\x{aa}/g;
Xchat::emit_print( $data, ($nick,$message,$mode,$extra) );
return Xchat::EAT_ALL;
}
sub setcharset {
$target_charset= $_[0];
Xchat::print("Charset changed to $target_charset");
}
sub iso2utf {
$message = $_[0];
$message =~ s/\x{c3}\x{a0}/\x{d7}\x{90}/g;
$message =~ s/\x{c3}\x{a1}/\x{d7}\x{91}/g;
$message =~ s/\x{c3}\x{a2}/\x{d7}\x{92}/g;
$message =~ s/\x{c3}\x{a3}/\x{d7}\x{93}/g;
$message =~ s/\x{c3}\x{a4}/\x{d7}\x{94}/g;
$message =~ s/\x{c3}\x{a5}/\x{d7}\x{95}/g;
$message =~ s/\x{c3}\x{a6}/\x{d7}\x{96}/g;
$message =~ s/\x{c3}\x{a7}/\x{d7}\x{97}/g;
$message =~ s/\x{c3}\x{a8}/\x{d7}\x{98}/g;
$message =~ s/\x{c3}\x{a9}/\x{d7}\x{99}/g;
$message =~ s/\x{c3}\x{aa}/\x{d7}\x{9a}/g;
$message =~ s/\x{c3}\x{ab}/\x{d7}\x{9b}/g;
$message =~ s/\x{c3}\x{ac}/\x{d7}\x{9c}/g;
$message =~ s/\x{c3}\x{ad}/\x{d7}\x{9d}/g;
$message =~ s/\x{c3}\x{ae}/\x{d7}\x{9e}/g;
$message =~ s/\x{c3}\x{af}/\x{d7}\x{9f}/g;
$message =~ s/\x{c3}\x{b0}/\x{d7}\x{a0}/g;
$message =~ s/\x{c3}\x{b1}/\x{d7}\x{a1}/g;
$message =~ s/\x{c3}\x{b2}/\x{d7}\x{a2}/g;
$message =~ s/\x{c3}\x{b3}/\x{d7}\x{a3}/g;
$message =~ s/\x{c3}\x{b4}/\x{d7}\x{a4}/g;
$message =~ s/\x{c3}\x{b5}/\x{d7}\x{a5}/g;
$message =~ s/\x{c3}\x{b6}/\x{d7}\x{a6}/g;
$message =~ s/\x{c3}\x{b7}/\x{d7}\x{a7}/g;
$message =~ s/\x{c3}\x{b8}/\x{d7}\x{a8}/g;
$message =~ s/\x{c3}\x{b9}/\x{d7}\x{a9}/g;
$message =~ s/\x{c3}\x{ba}/\x{d7}\x{aa}/g;
return 1;
}