Shell Script, MySQL und Umlaute

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ManfredG
Beiträge: 112
Registriert: 12.08.2004 17:38:14

Shell Script, MySQL und Umlaute

Beitrag von ManfredG » 16.06.2009 03:05:11

Hallo,
ich habe ein komisches Problem.

Wenn ich einen INSERT Befehl mit Umlauten in ein Shell Script schreibe, stehen die Umlaute richtig im Shell Script.
Aber in der MySQL Datenbank landen die Umlaute trotzdem unleserlich.

locale sagt mir:
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=de_DE.UTF-8

Das Feld in der MySQL Datenbank steht auf utf8_general_ci.
Wenn ich Datensätze von einem MySQL Dump einspiele stimmen die Umlaute.

Wie läßt sich dieses Problem lösen?

Liebe Grüße
Manfred

pluvo

Re: Shell Script, MySQL und Umlaute

Beitrag von pluvo » 17.06.2009 00:58:36

Hallo!

Kannst du das Shell-Skript veröffentlichen? Ich habe mir mal eine Testumgebung eingerichtet:
  • Datenbank:

    Code: Alles auswählen

    CREATE DATABASE utf8test;
  • Tabelle:

    Code: Alles auswählen

    CREATE TABLE utf8test (
    id int(11) NOT NULL AUTO_INCREMENT,
    name varchar(100),
    vorname varchar(100),
    PRIMARY KEY (id)
    ) ENGINE = MYISAM  CHARACTER SET utf8 COLLATE utf8_unicode_ci;
  • Testdatensatz:

    Code: Alles auswählen

    INSERT INTO utf8test VALUES ('', 'Müller', 'Jürgen');
mfg pluvo :)

ManfredG
Beiträge: 112
Registriert: 12.08.2004 17:38:14

Re: Shell Script, MySQL und Umlaute

Beitrag von ManfredG » 17.06.2009 12:58:42

Hallo,
ich konnte mittlerweile dieses Problem lösen.

Ich habe diese Zeilen In der /etc/my.cnf ergänzt.

[mysqld]
default-character-set=utf8

[mysql]
default-character-set=utf8

Jetzt klappt es auch ganz problemlos mit den deutschen Umlauten.

Liebe Grüße
Manfred

Antworten