[linux] mysql / utf8 problemen

Wybo Dekker wybo op servalys.nl
Di Nov 14 10:22:15 CET 2006


Ik lig voortdurend in de clinch met mijn mysql database voorzover het
gaat om opslag van utf8 teksten.
Mijn locale is:

wybo>locale
LANG=en_IE.utf8
LC_CTYPE="en_IE.utf8"
LC_NUMERIC="en_IE.utf8"
LC_TIME=nl_NL
LC_COLLATE=C
LC_MONETARY="en_IE.utf8"
LC_MESSAGES="en_IE.utf8"
LC_PAPER="en_IE.utf8"
LC_NAME="en_IE.utf8"
LC_ADDRESS="en_IE.utf8"
LC_TELEPHONE="en_IE.utf8"
LC_MEASUREMENT="en_IE.utf8"
LC_IDENTIFICATION="en_IE.utf8"
LC_ALL=

Als ik het volgende sql=scriptje aan mysql aanbied gebeurt precies wat
ik verwacht:

wybo>cat t
   drop database if exists test;
   create database test;
   use test;
   drop table if exists `txt`;
   create table `txt` ( `txt` text) engine=myisam default charset=utf8;
   insert into `txt` values ('áû½');
   select * from txt;

wybo>mysql <t
txt
áû½

Ik zie dan dus een a met accent aigue, een u met een circonflex en een 1/2
Maar als ik daarna mysqldump draai komt het het er vervormd weer uit, 
alsof de oorspronkelijke utf8 per karakter naar latin1 vertaald is. 
Terwijl toch de mysqldump man page zegt dat by default utf8 gebruikt 
wordt:

wybo>mysqldump test|grep INSERT
INSERT INTO `txt` VALUES ('áû½');
wybo>

weet iemand wat ik verkeerd doe/heb staan?

-- 
Wybo





More information about the Linux mailing list