# Umlaute in Mysql-Tabelle importieren

## kami22

Hi,

ich lese mit einem Perl-Skripte eine TXT-Datei aus und speichere die Daten in eine Mysql-Datenbank. Dabei gehen immer die Umlaute verloren. Das Format der Zelle name ist latin1_german1_ci . Wenn ich in der Console beim Perl-Skript mir per print die Variablen ausgeben lasse dann sind die Umlaute auch vorhanden. Und wenn ich mit phpmyadmin auf die Mysql-Datenbank zugreife, dann kann ich dort die Namen abändern und auch Umlaute eintragen. Diese sind dann auch richtig gespeichert. Nun die Frage wo gehen die Umlaute verloren? Habe dann nur noch Fragezeichen da stehen?

Gruß kami

----------

## Hollowman

Hi

Du hast ein Problem mit dem Encoding. Mach alles UTF8, dann sollte es gehen.

Sebastian

----------

## kami22

Hi,

ja auf UTF8 war ja schon alles. Da hatte ich das Problem das er ab dem Punkt wo ein Umlaut kam, den String nicht weiter in das Feld geschrieben hat. Deswegen bin ich ja schon auf Latin gewechselt.

Gruß kami

----------

## firefly

 *kami22 wrote:*   

> Hi,
> 
> ja auf UTF8 war ja schon alles. Da hatte ich das Problem das er ab dem Punkt wo ein Umlaut kam, den String nicht weiter in das Feld geschrieben hat. Deswegen bin ich ja schon auf Latin gewechselt.
> 
> Gruß kami

 

vermutlich wurde das Umlaut nicht in uft-8 kodiert übertragen.

----------

## kami22

Wie mache ich das den??

Gruß kami

----------

## firefly

 *kami22 wrote:*   

> Wie mache ich das den??
> 
> Gruß kami

 

Entweder du sorgst dafür, dass die text-datei, welche du einliest in utf-8 kodiert gespeichert wird. Oder du konvertierst den eingelesenen text mit perl nach utf-8 bevor der text in die Datenbank geschrieben wird.

----------

## kami22

Ahh ich glaube ich weiß jetzt, was du meinst. Teste ich nachher erstmal zu hause.

Gruß kami

----------

## musv

Ich war früher eher ein utf-8-Gegner. Nebenjobmäßig war als Webprogrammierer (PHP/MySQL) tätig. Irgendwann mal hat mich das ganze utf8_encode, utf8_decode dann nur noch angekotzt. Von daher:

- Dateisystem auf utf-8

- locale auf utf-8

- mysql-Datenbanken Default Character Set: utf-8

- DB-Tabellen: utf8_unicode_ci

Damit hast du dann Ruhe.

----------

## firefly

 *musv wrote:*   

> Ich war früher eher ein utf-8-Gegner. Nebenjobmäßig war als Webprogrammierer (PHP/MySQL) tätig. Irgendwann mal hat mich das ganze utf8_encode, utf8_decode dann nur noch angekotzt. Von daher:
> 
> - Dateisystem auf utf-8
> 
> - locale auf utf-8
> ...

 

das bringt ihm nur was, wenn die einzulesende Datei nicht im ascii format von einem editor/program erstellt wird. Ansonsten muss er wieder konvertieren.

----------

## kami22

Hi,

Problem gelöst. Es lag daran, das die Datei falsch von einem Editor gespeichert wurde. Jetzt klappt alles super.

Vielden Dank. Gruß Kami

----------

