Bug#318058: lidbdb-mysql-perl and UTF8
Gunnar Koppel
wk at hot.ee
Thu Dec 4 13:32:27 UTC 2008
Terr!
2007/9/28 gregor herrmann <gregor+debian at comodo.priv.at>:
>> > I made a bug report some time ago:
>> > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=318058
>> > I just wanted to add that i tried today new version (3.0002-1) and it
>> > does not solve the problem.
>> Can you try the version 4.004 that I just uploaded to unstable? (It will be
>> available tomorrow on the mirrors)
>
> May I kindly ask again if you can still reproduce this problem with
> version 4.004 or greater?
I still have problem with lidbdb-mysql-perl and UTF8. I made simple
testcase for reproducing, so you could easily test it out:
#!/usr/bin/perl
use strict;
use warnings;
# use utf8;
# use locale;
# binmode STDIN, ":utf8";
# binmode STDOUT, ":utf8";
use DBI;
my ($db, $user, $password, $hostname, $data_source) = ();
$db = "utf8";
$user = "";
$password = "";
$hostname = "localhost";
$data_source = "DBI:mysql:database=$db;host=$hostname";
my $dbh = DBI->connect($data_source, $user, $password) || die "no connection\n";
my (@data) = $dbh->selectrow_array("SELECT * FROM utf8.utf8 LIMIT 1");
print "@data\n";
__END__
Database creation:
CREATE database utf8;
use utf8
SET character_set_client = utf8;
CREATE TABLE `utf8` (
`id` int(10) unsigned NOT NULL auto_increment,
`string` varchar(255) collate utf8_estonian_ci NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=35610 DEFAULT CHARSET=utf8
COLLATE=utf8_estonian_ci;
Row of data:
INSERT INTO utf8.utf8 (id, string) values (1, 'šš ðð');
printout should be:
1 šš ðð
but is:
1 �� �
I tried output through Data::Dumper too and got:
$VAR1 = [
[
'1',
'�� ��'
]
];
As you can see in my test script i tried to run it in different
pragmas (use utf8 and use locale), but it did not help too. When i
enable STDOUT binmode, i get proper output of second pair (ðð), but
first is still "foggy". If i use lidbdb-mysql-perl version 2.9006 it
works fine.
I hope you can find out what is wrong using this testcase.
I have this problem in my Debian server, but i tried it now in my
Kubuntu notebook, here i have such software:
mysql status:
Current database: utf8
Current user: wanradt at localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)
Protocol version: 10
Connection: Localhost via UNIX socket
Insert id: 1
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 13 days 20 hours 50 min 29 sec
perl -V (first lines):
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=linux, osvers=2.6.15.7, archname=i486-linux-gnu-thread-multi
uname='linux palmer 2.6.15.7 #1 smp thu sep 7 19:42:20 utc 2006
i686 gnulinux '
libdbi-perl
Version: 1.601-1
locale:
LANG=et_EE.UTF-8
LANGUAGE=et_EE:et:en_GB:en
LC_CTYPE="et_EE.UTF-8"
LC_NUMERIC="et_EE.UTF-8"
LC_TIME="et_EE.UTF-8"
LC_COLLATE="et_EE.UTF-8"
LC_MONETARY="et_EE.UTF-8"
LC_MESSAGES="et_EE.UTF-8"
LC_PAPER="et_EE.UTF-8"
LC_NAME="et_EE.UTF-8"
LC_ADDRESS="et_EE.UTF-8"
LC_TELEPHONE="et_EE.UTF-8"
LC_MEASUREMENT="et_EE.UTF-8"
LC_IDENTIFICATION="et_EE.UTF-8"
LC_ALL=
As i pointed, it works fine with version 2.9006
--
With best regards,
Kõike hääd,
G
More information about the pkg-perl-maintainers
mailing list