Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use feature "unicode_strings";
- use Encode qw/:all/;
- use Encode::Guess qw/utf8 iso-8859-1 cp1252/;
- use MIME::Base64;
- my $ldif;
- $/ = ""; # switch to praragraph mode
- while ($ldif = <STDIN>)
- {
- $ldif =~ s/\n //g; # concatenate continued lines
- $ldif =~ s/^(.+?):\s*?\n//mg; # ignore empty attributes
- $ldif =~ s/^(.+?)::\s(.+?)$/&fix_charset($1, $2)/mge; # fix charset
- }
- sub fix_charset
- {
- my ($attribute, $value) = @_;
- my $decoder = Encode::Guess->guess($value);
- die $decoder unless ref($decoder);
- my $string = $attribute.":: ".encode_base64(encode_utf8($decoder->decode(decode_base64($value))));
- $string =~ s/\n//g; # whipe linefeeds
- return $string;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement