LINUX.ORG.RU

perl, mysql и utf-8


0

0

Всем привет.
Есть текстовый файл в utf-8, который парсится перловым скриптом и данные пишутся в пятый мускуль (в котором всё утф, коллокейшн тоже).
open(my $file_handle, "<:utf8", "$filename") or die "Cannot open xml file";
$parser->parse_file($file_handle) or die "Cannot parse file '$report_filename'";
$parser->eof;
print "Notice: xml file processing done.\n";
close $file_handle;



Но вот незадача, пишутся они в базу в какой-то странной кодировке.
Как сделать так, что бы в базу данные поступали в утф?

★★★★★

use locale;
use POSIX qw(locale_h);
setlocale(LC_CTYPE, $ENV{'LANG'});

#?

ip1981 ☆☆
()

Сразу после коннекта выполнить скл:

set names utf8;

Попробовать биндить строки, а не составлять полный скл вставки.

и еще прагму use utf8;

roller ★★★
()

Всем спасибо, Проблему решил, просто указав кодировку клиента :)

$db_handle->do("SET NAMES cp1251");

pento ★★★★★
() автор топика

а можно в настройках мускуля указать дефолтную кодировку клиента

а можно пересобрать мускуль с той же целью

типа USE="utf8" emerge mysql

AnDoR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.