Я использую венгерский язык с красивыми символами ő и ű в моем сценарии perl
с DBI
и MySQL
. Вся кодировка базы данных UTF8, и я везде использую utf8. Таблица в кодировке utf8_general_ci, а строки тоже в utf8_general_ci.
Меня пытались изменить кодировку таблицы и строк на utf8_hungarian_ci и utf8_unicode_ci. Это не помощь.
Когда я вставлял строки с помощью PHPMyAdmin, и, кажется, все в порядке, и когда я проверяю в консоли, тоже хорошо. Только если я пытаюсь использовать в Perl DBI connect, только в этом случае я вижу '?' вместо символов «ő», «Ő», «ű» и «Ű».
Вот мой perl-скрипт:
use uft8;
use DBI
my $db = DBI->connect("dbi:mysql:dbname=...", "user", "passwd",
{mysql_enable_utf8 => 1}) || die $DBI::error;
$db->do("INSERT INTO mytable (name) VALUES ('őűŐŰ')");
my $dbh = $db->prepare("SELECT name FROM mytable;");
$dbh->execute;
while (my @this = $dbh->fetchrow_array) {
print $this[0]."\n";
}
Что случилось? Есть ли специальный параметр или настройка для DBI? Или
SET NAMES UTF8
перед вставкой - person Mihai   schedule 10.01.2015