mirror of
https://github.com/imapsync/imapsync.git
synced 2025-06-10 22:54:33 +02:00
1.607
This commit is contained in:
parent
e195ab3906
commit
65fd3eac5d
27 changed files with 1382 additions and 879 deletions
29
W/learn/imap_utf7_decode
Executable file
29
W/learn/imap_utf7_decode
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use Unicode::String ;
|
||||
|
||||
while (<>) {
|
||||
chomp ;
|
||||
#push( @result, sprintf( "%33s %s\n", $_, decode( $_ ) ) ) ;
|
||||
push( @result, sprintf( "%s\n", imap_utf7_decode( $_ ) ) ) ;
|
||||
}
|
||||
|
||||
print @result ;
|
||||
|
||||
# http://cpansearch.perl.org/src/FABPOT/Unicode-IMAPUtf7-2.01/lib/Unicode/IMAPUtf7.pm
|
||||
|
||||
sub imap_utf7_decode {
|
||||
my ($s) = @_;
|
||||
|
||||
# Algorithm
|
||||
# On remplace , par / dans les BASE 64 (, entre & et -)
|
||||
# On remplace les &, non suivi d'un - par +
|
||||
# On remplace les &- par &
|
||||
$s =~ s/\+/PLUSPLACEHOLDER/g;
|
||||
$s =~ s/&([^,&\-]*),([^,\-&]*)\-/&$1\/$2\-/g;
|
||||
$s =~ s/&(?!\-)/\+/g;
|
||||
$s =~ s/&\-/&/g;
|
||||
$s =~ s/PLUSPLACEHOLDER/+-/g;
|
||||
|
||||
return( Unicode::String::utf7( $s )->utf8 ) ;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue