Проблема с кодировкой

Запросы на решение проблем

Модератор: ykolesnikov

Ответить
crbr
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 26 ноя 2012, 13:33

Проблема с кодировкой

Сообщение crbr » 26 ноя 2012, 13:43

Проблема собственно отображена на скриншоте в поле отправитель всё нормально, русские буквы отображаются, в информации о клиенте же кракозябры вместо русских букв..
Изображение
Файл Config.pm

Код: Выделить всё

package Kernel::Config;

use utf8;
use Encode;

sub Load {
    my $Self = shift;
    $Self->{'DefaultCharset'} = 'utf-8';
    $Self->{'DatabaseHost'} = 'localhost';
    $Self->{'Database'} = 'otrs';
    $Self->{'DatabaseUser'} = 'root';	
	$Self->{'DatabasePw'} = 'otrs';
    $Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";
    $Self->{SecureMode} = '0';
    $Self->{Home} = '/opt/otrs';
    $Self->{Debug} = 1;
    $Self->{SecureMode} = 1;

    #Auth agents in DB
    $Self->{AuthModule} = 'Kernel::System::Auth::DB';    
    #Auth agents in NWTH
    $Self->{'AuthModule2'} = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host2'} = 'office.nwth.com';
    $Self->{'AuthModule::LDAP::BaseDN2'} = 'dc=nwth,dc=com';
    $Self->{'AuthModule::LDAP::UID2'} = 'sAMAccountName';
    $Self->{'AuthModule::LDAP::SearchUserDN2'} = 'NWTH\ldaprequest';
    $Self->{'AuthModule::LDAP::SearchUserPw2'} = 'password';
    #Auth Customers in NWTH
    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} ='office.nwth.com';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=nwth,dc=com';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'NWTH\ldaprequest';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'password';
    $Self->{'Customer::AuthModule::LDAP::SourceCharset'} = 'utf-8';
    $Self->{'Customer::AuthModule::LDAP::DestCharset'} = 'utf-8';
    #Auth Customers in U220
    $Self->{'Customer::AuthModule2'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host2'} ='vdc01.shop.com';
    $Self->{'Customer::AuthModule::LDAP::BaseDN2'} = 'dc=shop,dc=com';
    $Self->{'Customer::AuthModule::LDAP::UID2'} = 'sAMAccountName';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN2'} = 'U220\ldaprequest';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw2'} = 'password';
    $Self->{'Customer::AuthModule::LDAP::SourceCharset'} = 'utf-8';
    $Self->{'Customer::AuthModule::LDAP::DestCharset'} = 'utf-8';
 

    $Self->{CustomerUser1} = {
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            Host => 'office.nwth.com',
            BaseDN => 'dc=nwth,dc=com',
            SSCOPE => 'sub',
            UserDN => 'NWTH\ldaprequest',
            UserPw => 'password',
        },
        CustomerKey => 'sAMAccountName',
        CustomerID => 'mail',
        CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
	#SourceCharset => 'utf-8', #was cp1251
	SourceCharset => 'utf-8',
	DestCharset   => 'utf-8',
        CustomerUserSearchListLimit => 2,
        Map => [
            [ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ],
            [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
            [ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ],
            [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
            [ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ],
        ]
    };
    
  

crbr
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 26 ноя 2012, 13:33

Re: Проблема с кодировкой

Сообщение crbr » 26 ноя 2012, 13:48

Продолженние

Код: Выделить всё

  $Self->{CustomerUser2} = {
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            Host => 'vdc01.volt.shop.com',
            BaseDN => 'dc=volt,dc=shop,dc=com',
            SSCOPE => 'sub',
            UserDN => 'U220\ldaprequest',
            UserPw => 'password',
        },
        CustomerKey => 'sAMAccountName',
        CustomerID => 'mail',
        CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
	SourceCharset => 'utf-8',
	DestCharset   => 'utf-8',
        CustomerUserSearchListLimit => 2,
        Map => [
            [ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ],
            [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
            [ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ],
            [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
            [ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ],
        ]
    };



    
    
}


# ---------------------------------------------------- #
# needed system stuff (don't edit this)                #
# ---------------------------------------------------- #
use strict;
use warnings;
use utf8;

use vars qw(@ISA $VERSION);
$VERSION = qw($Revision: 1.25 $)[1];

use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');

# -----------------------------------------------------#

1;

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Проблема с кодировкой

Сообщение merkushov » 26 ноя 2012, 14:29

У вас на этапе синхронизации клиентов кодировка бьётся.
Меркушов Виктор, perl программист

crbr
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 26 ноя 2012, 13:33

Re: Проблема с кодировкой

Сообщение crbr » 26 ноя 2012, 14:49

merkushov писал(а):У вас на этапе синхронизации клиентов кодировка бьётся.
а разве
$Self->{'Customer::AuthModule::LDAP::SourceCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::DestCharset'} = 'utf-8';
не для этого нужно?

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Проблема с кодировкой

Сообщение merkushov » 26 ноя 2012, 15:54

SourceCharset - это кодировка в системе otrs. По дефолту utf8 и я не думаю что её можно поменять.
DestCharset - это кодировка в удалённой системе.

При синхронизации OTRS пытается перекодировать данные из одной кодировки в другую в зависимости от того что вы тут указали.
Меркушов Виктор, perl программист

crbr
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 26 ноя 2012, 13:33

Re: Проблема с кодировкой

Сообщение crbr » 26 ноя 2012, 17:10

merkushov писал(а):SourceCharset - это кодировка в системе otrs. По дефолту utf8 и я не думаю что её можно поменять.
DestCharset - это кодировка в удалённой системе.

При синхронизации OTRS пытается перекодировать данные из одной кодировки в другую в зависимости от того что вы тут указали.
Так проблема в том что на удаленной системе тоже utf-8 и исходя из выложенного мной скриншота в одном месте нормально отображается из чего можно сделать вывод что настроено верно, но вот в информации о клиенте там кракозябры. Вот в чем мой вопрос

yuri0001
OTRS Бывалый
Сообщения: 492
Зарегистрирован: 11 фев 2011, 20:25
Откуда: Череповец

Re: Проблема с кодировкой

Сообщение yuri0001 » 26 ноя 2012, 17:25

А остальные клиенты как? Проверьте, может кто-то накосячил по этому конкретному клиенту.
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

crbr
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 26 ноя 2012, 13:33

Re: Проблема с кодировкой

Сообщение crbr » 26 ноя 2012, 17:30

yuri0001 писал(а):А остальные клиенты как? Проверьте, может кто-то накосячил по этому конкретному клиенту.
нет, такая ситуация со всеми клиентами, везде отображается нормально( в тикетах, в списке клиентов) и только в Таблице "Информация о клиенте" такая проблема

crbr
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 26 ноя 2012, 13:33

Re: Проблема с кодировкой

Сообщение crbr » 27 ноя 2012, 11:18

Проблема решена:
$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'dc.mycompany.com',
BaseDN => 'dc=mycompany,dc=com',
SSCOPE => 'sub',
UserDN => 'domainname\\username',
UserPw => 'password',
AlwaysFilter => '(objectclass=user)',
Die => 1,
# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
Params => {
raw => qr/(?i:^jpegPhoto|;binary)/, # после добавления вот этой строки всё заработало

Ответить