#!/usr/bin/perl use Unicode::String ; while (<>) { chomp ; push( @result, sprintf( "%s\n", imap_utf7_encode( $_ ) ) ) ; } print @result ; # http://cpansearch.perl.org/src/FABPOT/Unicode-IMAPUtf7-2.01/lib/Unicode/IMAPUtf7.pm sub imap_utf7_encode { my ( $s ) = @_ ; $s = Unicode::String::utf8( $s )->utf7 ; $s =~ s/\+([^\/&\-]*)\/([^\/\-&]*)\-/\+$1,$2\-/g ; $s =~ s/&/&\-/g ; $s =~ s/\+([^+\-]+)?\-/&$1\-/g ; return( $s ) ; }