I have written this script below,
the output file generated but i still seeing, German "Umlaut" in the csv output file. Example : Björn
why the csv output file is not encoded into encoding(UTF-8)??, am i missed any steps here!!!!
#!/usr/bin/perl
use Net::LDAP;
use Encode;
use Net::LDAP::Entry;
use Net::LDAP::Control::Paged;
use Net::LDAP::Constant qw( LDAP_CONTROL_PAGED );
#$outputfile = "LicMan1.csv";
$outputfile = 'C:\Meta\MDS\data\out\LicMan1.csv';
#$inputfile = 'D:\Meta\MDS\data\out\LicMan1.csv';
$outputfile2 = 'C:\Meta\MDS\data\out\LicMan.csv';
open (FH, ">$outputfile") or die "$!";
print FH "import_id;import_data_source_id;login;import_level_2_id;impo
+rt_location_id;last_name;first_name;email;is_active;language;remarks;
+\n";
my @args = ( base => $base,
scope => 'sub',
filter => $query,
attrs => \@attrs,
control => [ $page ],);
my $cookie;
while (1) {
$mesg = $ldap->search ( @args ) or die $!;
while (my $entry = $mesg->shift_entry()) {
#uid,dpwncrestcode,dpwnc,sn,givenname,mail,dhlaccountstatus,preferredl
+anguage,dhlemployeetype
my $entrydn = $entry->dn();
my $uid = $entry->get_value('uid');
my $dpwncrestcode = $entry->get_value('dpwncrestcode');
my $dpwnc = $entry->get_value('dpwnc');
my $sn = $entry->get_value('sn');
if (($sn eq "") || ($sn eq " ")){
$sn = "-";
} else {
$sn = "$sn";}
my $givenname = $entry->get_value('givenname');
if (($givenname eq "") || ($givenname eq " ")){
$givenname = "-";
} else {
$givenname = "$givenname";}
my $mail = $entry->get_value('mail');
my $dhlaccountstatus = $entry->get_value('dhlaccountstatus');
if ($dhlaccountstatus == "enabled") {
$dhlaccountstatus = "1";
} else {
$dhlaccountstatus = "0";}
my $preferredlanguage = $entry->get_value('preferredlanguage');
if ($preferredlanguage ne "de") {
$preferredlanguage = "en";
} else {
$preferredlanguage = "de";}
my $dhlemployeetype = $entry->get_value('dhlemployeetype');
if ($dhlemployeetype eq "") {
$dhlemployeetype = ";";
} else {
$dhlemployeetype = "$dhlemployeetype";}
print FH "$uid;dpdhl_eds;$uid;$dpwncrestcode;$dpwnc;$sn;$givenname;$ma
+il;$dhlaccountstatus;$preferredlanguage;$dhlemployeetype\n";
}
}
$ldap->unbind;
close(FH);
open (INPUT, "<:encoding(UTF-8)", $outputfile) or die "Cannot open fil
+ename for input: $!";
while (<INPUT>) {
s/"//g;
$replace .= $_;}
close INPUT or die "Cannot close filename: $!";
open (OUTPUT, ">:encoding(UTF-8)",$outputfile2) or die "Cannot open fi
+lename for output: $!";
print OUTPUT $replace;
close OUTPUT or die "Cannot close filename: $!";
|