There is a script that hourly checks users in AD, if the new users it adds it to the ZCS but user names are displayed characters ;5:A59 ;5:A0=4@>2
Here's the script:

Code:
#!/usr/bin/perl
use Net::LDAP;
use utf8;
use Encode;

my $domain="mail_domain";
my $zmprov="/opt/zimbra/bin/zmprov -l";

my $AD_server="10.0.0.150";
my $AD_user="jabberd\@domain.ru";
my $AD_pass="passwd";
my $AD_base="dc=domain,dc=ru";

my $LDAP_server="10.0.0.242";
my $LDAP_user="uid=zimbra,cn=admins,cn=zimbra";
my $LDAP_pass="ldap";
my $LDAP_base="dc=mail_domain,dc=ru";

my %LDAP=(),%AD=();

#----------AD
$ldap = Net::LDAP->new($AD_server);
$ldap->bind($AD_user, password=>$AD_pass);

$mesg = $ldap->search(filter=>"(&(objectclass=user)(mail=*\@$domain)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))",
        base=>$AD_base,
        attrs=> ['sAMAccountName','displayName','sn', 'givenname', 
                'initials','department','description','userAccountControl','mail','company','telephoneNumber']);

@entries = $mesg->entries;
foreach $entry (@entries) {

my $name,$sn,$mail,$department,$company,$sAMAccountName;

            $id=$entry->get_value(sAMAccountName);
            $id=lc($id);
            $displayName=$entry->get_value(displayName);
            $sn=$entry->get_value(sn);
            $givenname=$entry->get_value(givenname);
            $initials=$entry->get_value(initials);
            $department=$entry->get_value(department);
            $description=$entry->get_value(description);
            $userAccountControl=$entry->get_value(userAccountControl);
            $mail=$entry->get_value(mail);
            $mail=lc($mail);
            $telephoneNumber=$entry->get_value(telephoneNumber);
            $company=$entry->get_value(company);

            $disabled=false;
            if (length($displayName)>0)   {
                $AD{$id}{displayName} = $displayName;
            }
            if (length($sn)>0)   {
                $AD{$id}{sn} = $sn;
            }
            if (length($givenname)>0)   {
                $AD{$id}{givenname} = $givenname;
            }
            if (length($initials)>0)   {
                $AD{$id}{initials} = $initials;
            }
            if (length($description)>0)   {
                $AD{$id}{description} = $description;
            }
            if (length($disabled)>0)   {
                $AD{$id}{disabled} = $disabled;
            }
            if (length($mail)>0)   {
                $AD{$id}{mail} = $mail;
            }
            if (length($telephoneNumber)>0) {
                $AD{$id}{telephoneNumber} = $telephoneNumber;
            }
            if (length($company)>0) {
                $AD{$id}{company} = $company;
            }
}

#---------- zimbra ldap

print "\nZIMBRA\n";
$ldap2 = Net::LDAP->new($LDAP_server);
$ldap2->bind($LDAP_user, password=>$LDAP_pass);

$mesg = $ldap2->search(filter=>"(&(objectClass=zimbraAccount)(!(userPassword=*))(!(zimbraCalResType=*)))",
        base=>$LDAP_base, attrs=> ['uid', 'displayName','sn','givenname','sn','mail','initials',
            'description','zimbraPrefFromAddress','zimbraMailDeliveryAddress','zimbraAccountStatus','telephoneNumber','company'] );

my $id='',$displayName='',$sn='',$givenname='',$initials='',$department='',$description='',$disabled='',$mail='';
@entries = $mesg->entries;
foreach $entry (@entries) {
    $id=$entry->get_value(uid);
#    if (($id ne "admin")&&($id ne "admin")&&($id ne "wiki")&&($id ne "spam.2bv4rvsjs")&&($id ne "ham.xdnsnpsmd3"))  {
        $displayName=$entry->get_value(displayName);
        $sn=$entry->get_value(sn);
        $givenname=$entry->get_value(givenname);
        $sn=$entry->get_value(sn);
        $initials=$entry->get_value(initials);
        $description=$entry->get_value(description);
        $telephoneNumber=$entry->get_value(telephoneNumber);
        $company=$entry->get_value(company);
        $status=$entry->get_value(zimbraAccountStatus);

        if (defined ($AD{$id})) {
            if ("$status" ne "active")
            {
                print "$id status=active\n";
                $status="active";
            }
            else{
                $status="";
            }
        }
        else {
            if ("$status" eq "active")
            {
                print "$id status=locked\n";
                $status="locked";
            }
            else{
                $status="";
            }
        }

        $mail=$entry->get_value(zimbraPrefFromAddress);

        if (length($mail)==0)
        {
            $mail=$entry->get_value('zimbraMailDeliveryAddress');
        }

        if (length($displayName)>0) {
            $LDAP{$id}{displayName} = $displayName;
        }
        if (length($sn)) {
            $LDAP{$id}{sn} = $sn;
        }
        if (length($givenname)>0) {
            $LDAP{$id}{givenname} = $givenname;
        }
        if (length($initials)>0) {
            $LDAP{$id}{initials} = $initials;
        }
        if (length($description)>0) {
            $LDAP{$id}{description} = $description;
        }
        if (length($telephoneNumber)>0) {
            $LDAP{$id}{telephoneNumber} = $telephoneNumber;
        }
        if (length($company)>0) {
            $LDAP{$id}{company} = $company;
        }
        if (length($mail)>0) {
            $LDAP{$id}{mail} = $mail;
        }
        if (length($status)>0) {
            $AD{$id}{status} = $status;
        }
#    }

}
print ("\n===AD==\n");

my $id='',$displayName='',$sn='',$givenname='',$initials='',$department='',$description='',$disabled='',$mail='';

print "удаляем одинаковые и несовпадающие с ад поля\n";
my $k2,$v2;
while(my ($k,$v)=each(%AD)) {
#Юзер уже есть
     if (defined ($LDAP{$k})) {
         while(($k2,$v2)=each(%{$AD{$k}})) {
#            print "$k2 # $v2\n";
            if ($LDAP{$k}{$k2} ne $AD{$k}{$k2}) {
                delete $LDAP{$k}{$k2};
#               print "удалено значение не соответсвующее АД значение\n";

            }
            else  {
#               print "Удалены идентичные значения\n";
                delete $AD{$k}{$k2};
                delete $LDAP{$k}{$k2};
            }
        }
    }
}

open(PIPE,'|/opt/zimbra/bin/zmprov -l');

my $create;
my $attr_st;
my $alias_st;
open (FILE, ">commands.list");

while(my ($k,$v)=each(%AD)) {
    $create=0;
    $attr_st="";
    $alias_st="";
    $from_st="";
    if (!(defined ($LDAP{$k})))  {
        $create=1;
    }
    #обновляем данные юзера
    while(my ($k2,$v2)=each(%{$AD{$k}})) {
#        print "$k --> $k2:$v2\n";
        if ($k2 eq "mail") {
            if ("$k\@$domain" ne "$v2" ) {
                $alias_st=$v2;
            }
        }
        if ($k2 eq "displayName") {
            $attr_st="$attr_st displayName \"$v2\"";
        }
        if ($k2 eq "sn") {
            $attr_st="$attr_st sn \"$v2\"";
        }
        if ($k2 eq "givenname") {
            $attr_st="$attr_st givenname \"$v2\"";
        }
        if ($k2 eq "initials") {
            $attr_st="$attr_st initials \"$v2\"";
        }
        if ($k2 eq "description") {
            $attr_st="$attr_st description \"$v2\"";
        }
        if ($k2 eq "sn") {
            $attr_st="$attr_st sn \"$v2\"";
        }
        if ($k2 eq "status") {
            print "$k zimbraAccountStatus \"$v2\"\n";
            $attr_st="$attr_st zimbraAccountStatus \"$v2\"";
        }
        if ($k2 eq "telephoneNumber") {
            print "$k telephoneNumber \"$v2\"\n";
            $attr_st="$attr_st telephoneNumber \"$v2\"";
        }
        if ($k2 eq "company") {
            print "$k company \"$v2\"\n";
            $attr_st="$attr_st company \"$v2\"";
        }
    }

    if ($create==1) {
        print PIPE "ca $k\@$domain '' $attr_st\n";
        print FILE "ca $k\@$domain '' $attr_st\n";

    }
    else  {
        if (length($attr_st)>0)
        {
            print PIPE "ma $k\@$domain $attr_st\n";
            print FILE "ma $k\@$domain $attr_st\n";
        }
    }

    if (length($alias_st)>0) {
        print PIPE "aaa $k\@$domain $alias_st\n";
        print FILE "aaa $k\@$domain $alias_st\n";
    }
    if (length($alias_st)>0) {
        print PIPE "ma $k\@$domain  zimbraPrefFromAddress $alias_st\n";
        print FILE "ma $k\@$domain  zimbraPrefFromAddress $alias_st\n";
    }

}
close(FILE);
close(PIPE);
What you need to alter the script so that the names were in Russian ?