Използвам унгарски език с хубави знаци ő и ű в моя perl
скрипт с DBI
и MySQL
. Цялото кодиране на базата данни е UTF8 и аз използвам utf8 навсякъде. Таблицата е в кодиране utf8_general_ci и редовете са твърде utf8_general_ci.
Опитах се да променя кодирането на таблицата и редовете на utf8_hungarian_ci и utf8_unicode_ci. Това не е помощ.
Когато вмъкнах редовете с помощта на PHPMyAdmin, и изглежда, че всичко е наред, и когато проверявам в конзолата, също е добре. Само ако се опитам да използвам в Perl DBI връзка, само този случай виждам '?' вместо знаци „ő“, „Ő“, „ű“ и „Ű“.
Ето моят 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