Hallo, Am Donnerstag 24 August 2006 14:56 schrieb Christoph Hanslik:
Hallo Liste, ich bin am verzweifeln mit MySQL und den Zeichensätzen! ...
mysql> SHOW VARIABLES LIKE "character_set_%"; +--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+ 7 rows in set (0,00 sec)
Also habe ich alle Systemvariablen vom mysqld nachgesehen und in /etc/my.cnf
character_set_client=utf8 character_set_connection=utf8 character_set_database=utf8 character_set_results=utf8 character_set_server=utf8
nachgezogen. Die Optionen character_set_results/_client/_connection kennt mysqld 4.1.10a offenbar nicht, er weigert sich damit zu starten, obwohl er das so ausgibt. Also mit character_set_server/_database=utf8 startet er und sagt:
mysql> SHOW VARIABLES LIKE "character_set_%"; +--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | utf8 | | character_set_results | latin1 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+ 7 rows in set (0,00 sec)
Im phpMyAdmin kann ich keine Systemvariable mit "latin1" mehr entdecken ... Im mysql-Client kann ich keine Unlaute eingeben, obwohl xterm und KDE konsole auf LANG=de_DE.UTF-8 stehen. D.h. mysql> select hex("ö"); konnte ich nicht ausprobieren.
Aber "mysqldump --default-character-set=utf8 datenbank" erfüllt mir die ersehnten Umlaute nicht.
Was muß ich tun? In welcher Richtung muß ich weitersuchen?
Ich bin kein MySQL Spezi, aber: Die Daten IN der Datenbank wurden doch bisher mit latin1 verwaltet. Dementsprechend solltest Du character_set_database auf latin1 lassen. Einfaches ändern des Parameters ändert ja nicht die Kodierung aller Zeichen in der DB. Du möchtest die Daten aus der DB mit utf8 'rausbekommen' und auf dem Client mit utf8 speichern (oder was auch immer). Dementsprechend würde ich character_set_client, character_set_connection und character_set_results auf utf8 stellen.
Danke im Vorraus
Grüße
Christoph
--
-- hanslik bei hanslux.de -- << -- http://www.hanslux.de -- <<
Viel Glück -- MfG Rolf Masfelder EMail: rolf.masfelder@nector.de