Umlaute

Umlaute

am 07.09.2004 13:14:21 von Bernd Kuegle

Hi!

Habe folgendes Problem: Ich wandle ein Excel-File in ein csv-File um und
lade das mittels php-script in meine DB. Die Umlaute gehen dabei verloren.
Wenn ich im Excel-File Umlaute vermeide (oe, ae ...), dann müßte ich
entweder in der DB oder dann bei der HTML-Ausgabe die oe, ae etc. wieder in
Umlaute umwandeln.
Was geht einfacher? Wie?

Danke
Bernd

Re: Umlaute

am 07.09.2004 14:03:19 von Niels Braczek

Bernd Kuegle schrieb:

> Habe folgendes Problem: Ich wandle ein Excel-File in ein csv-File um
> und lade das mittels php-script in meine DB. Die Umlaute gehen dabei
> verloren. Wenn ich im Excel-File Umlaute vermeide (oe, ae ...), dann
> müßte ich entweder in der DB oder dann bei der HTML-Ausgabe die oe,
> ae etc. wieder in Umlaute umwandeln.
> Was geht einfacher? Wie?

Stelle fest, welche Codierung Excel beim Export benutzt und
berücksichtige das beim Import. Einfacher geht's sicher nicht.

MfG
Niels

--
"Kann mir mal jemand erklären, warum Google Milliarden von Webseiten
schneller durchsuchen kann als Microsoft [Outlook] meine 600 Emails?"
[Michael Parsons]

Re: Umlaute

am 07.09.2004 15:36:44 von Bernd Kuegle

"Niels Braczek" schrieb im Newsbeitrag
news:chk7ra$1nt$02$1@news.t-online.com...
> Bernd Kuegle schrieb:
>
> > Habe folgendes Problem: Ich wandle ein Excel-File in ein csv-File um
> > und lade das mittels php-script in meine DB. Die Umlaute gehen dabei
> > verloren. Wenn ich im Excel-File Umlaute vermeide (oe, ae ...), dann
> > müßte ich entweder in der DB oder dann bei der HTML-Ausgabe die oe,
> > ae etc. wieder in Umlaute umwandeln.
> > Was geht einfacher? Wie?
>
> Stelle fest, welche Codierung Excel beim Export benutzt und
> berücksichtige das beim Import. Einfacher geht's sicher nicht.
>
> MfG
> Niels
>
> --
> "Kann mir mal jemand erklären, warum Google Milliarden von Webseiten
> schneller durchsuchen kann als Microsoft [Outlook] meine 600 Emails?"
> [Michael Parsons]
>

Die Codierung ist WESTEUROPA(WINDOWS). Es funktioniert aber auch mit anderen
Codierungen nicht. Oder stellt man die Codierung für den Export woanders
fest (habe in Extras/Optionen/Allgemein/Weboptionen nachgeschaut)?
Grüße
Bernd

Re: Umlaute

am 07.09.2004 15:42:44 von Ulrich Nehls

Hallo Bernd,

> Habe folgendes Problem: Ich wandle ein Excel-File in ein csv-File um und
> lade das mittels php-script in meine DB. Die Umlaute gehen dabei verloren.
> Wenn ich im Excel-File Umlaute vermeide (oe, ae ...), dann müßte ich
> entweder in der DB oder dann bei der HTML-Ausgabe die oe, ae etc. wieder in
> Umlaute umwandeln.
> Was geht einfacher? Wie?

Wenn du die Umlaute von vornherein html-kompatibel speicherst
("Ölige Würstchen") dürfte es doch kein Problem geben, oder?
(Außer du trennst in deiner csv-Datei mit Strichpunkt, aber das muss ja
nicht).
Verschwinden denn die Umlaute ersatzlos, oder steht da dann was anderes?
Und was ist das für eine Datenbank?

Gruß,

Uli

Re: Umlaute

am 07.09.2004 16:42:14 von Bernd Kuegle

"Ulrich Nehls" schrieb im Newsbeitrag
news:2q5s6lFrmckeU1@uni-berlin.de...
> Hallo Bernd,
>
> > Habe folgendes Problem: Ich wandle ein Excel-File in ein csv-File um und
> > lade das mittels php-script in meine DB. Die Umlaute gehen dabei
verloren.
> > Wenn ich im Excel-File Umlaute vermeide (oe, ae ...), dann müßte ich
> > entweder in der DB oder dann bei der HTML-Ausgabe die oe, ae etc. wieder
in
> > Umlaute umwandeln.
> > Was geht einfacher? Wie?
>
> Wenn du die Umlaute von vornherein html-kompatibel speicherst
> ("Ölige Würstchen") dürfte es doch kein Problem geben, oder?
> (Außer du trennst in deiner csv-Datei mit Strichpunkt, aber das muss ja
> nicht).
> Verschwinden denn die Umlaute ersatzlos, oder steht da dann was anderes?
> Und was ist das für eine Datenbank?
>
> Gruß,
>
> Uli

Hi Uli!

Mist. Habe aus Versehen immer das Exportformat CSV(DOS) statt
CSV(Trennzeichen getrennt) verwendet. Jetzt klappt´s. Übrigens: wo kann man
in Excel die Trennzeichen einstellen?

Vielen Dank
Bernd

Re: Umlaute

am 07.09.2004 16:52:29 von Joerg Behrens

"Bernd Kuegle" schrieb im Newsbeitrag
news:413dc8c6$0$27308$91cee783@newsreader01.highway.telekom. at...
> "Ulrich Nehls" schrieb im Newsbeitrag
> news:2q5s6lFrmckeU1@uni-berlin.de...
> > Hallo Bernd,
> >
> > > Habe folgendes Problem: Ich wandle ein Excel-File in ein csv-File um
und
> > > lade das mittels php-script in meine DB. Die Umlaute gehen dabei
> verloren.
> > > Wenn ich im Excel-File Umlaute vermeide (oe, ae ...), dann müßte ich
> > > entweder in der DB oder dann bei der HTML-Ausgabe die oe, ae etc.
wieder
> in
> > > Umlaute umwandeln.
> > > Was geht einfacher? Wie?
> >
> > Wenn du die Umlaute von vornherein html-kompatibel speicherst
> > ("Ölige Würstchen") dürfte es doch kein Problem geben, oder?
> > (Außer du trennst in deiner csv-Datei mit Strichpunkt, aber das muss ja
> > nicht).
> > Verschwinden denn die Umlaute ersatzlos, oder steht da dann was anderes?
> > Und was ist das für eine Datenbank?
> >
> > Gruß,
> >
> > Uli
>
> Hi Uli!
>
> Mist. Habe aus Versehen immer das Exportformat CSV(DOS) statt
> CSV(Trennzeichen getrennt) verwendet. Jetzt klappt´s. Übrigens: wo kann
man
> in Excel die Trennzeichen einstellen?

Ist DOS dann nicht Codepage 850? Dann haettest du mit der ext/iconv oder
ext/recode den Text nach Latin1 8859-1 konvertieren muessen.

Gruss
Joerg


--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025

Re: Umlaute

am 07.09.2004 17:30:49 von Bernd Kuegle

"Bernd Kuegle" schrieb im Newsbeitrag
news:413d980d$0$7650$91cee783@newsreader02.highway.telekom.a t...
> Hi!
>
> Habe folgendes Problem: Ich wandle ein Excel-File in ein csv-File um und
> lade das mittels php-script in meine DB. Die Umlaute gehen dabei verloren.
> Wenn ich im Excel-File Umlaute vermeide (oe, ae ...), dann müßte ich
> entweder in der DB oder dann bei der HTML-Ausgabe die oe, ae etc. wieder
in
> Umlaute umwandeln.
> Was geht einfacher? Wie?
>
> Danke
> Bernd
>

Habe mein Problem immer noch nicht gelöst. Beim Laden der csv-Datei in die
SQL-DB mittel php-Script werden die Umlaute nicht korrekt umgewandelt. Hier
der zuständige php-Code:

foreach ($file_contents_line as $key => $val)
{
$inserts .= (($key >= 1) ? ", " : "")."('";
$values = explode(';'$val);

for ($j = 0; $j < count($values); $j++)
{
$inserts .= addslashes(utf8_decode($values[$j])).(($j != (count($values) -
1)) ? "', '" : "");
}
$inserts .= "')";
}

Bin ein php-Newbie. Wie kann man den Code ändern, damit Umlaute korrekt
geladen werden?

Grüße
Bernd

Re: Umlaute

am 07.09.2004 18:37:14 von jpm-account-forwards-to-dev-null-use-reply-adress

Ulrich Nehls schrieb:

>> Habe folgendes Problem: Ich wandle ein Excel-File in ein csv-File um und
>> lade das mittels php-script in meine DB. Die Umlaute gehen dabei
>> verloren.
>> Wenn ich im Excel-File Umlaute vermeide (oe, ae ...), dann müßte ich
>> entweder in der DB oder dann bei der HTML-Ausgabe die oe, ae etc.
>> wieder in Umlaute umwandeln.
>
> Wenn du die Umlaute von vornherein html-kompatibel speicherst
> ("Ölige Würstchen") dürfte es doch kein Problem geben, oder?

Das ist eine ganz blöde Idee. *meinjanur*

Erstens werden die Umlaute in seinen Excel-Tabellen wohl kaum so
vorliegen - Soll er die dann alle ändern? - und zweitens will man Daten,
wo immer es geht, unabängig vom potentiellen Ausgabemedium speichern.


Gruß, JPM

Re: Umlaute

am 07.09.2004 19:37:56 von Matthias Esken

Jens Peter Möller schrieb:

> Ulrich Nehls schrieb:
>
>> Wenn du die Umlaute von vornherein html-kompatibel speicherst
>> ("Ölige Würstchen") dürfte es doch kein Problem geben, oder?
>
> Das ist eine ganz blöde Idee. *meinjanur*
>
> Erstens werden die Umlaute in seinen Excel-Tabellen wohl kaum so
> vorliegen - Soll er die dann alle ändern? - und zweitens will man Daten,
> wo immer es geht, unabängig vom potentiellen Ausgabemedium speichern.

Mal abgesehen davon, dass die Verwendung von "Ä", "Ö" und "Ü" in HTML
überhaupt kein Problem darstellt.

Gruß,
Matthias

Re: Umlaute

am 07.09.2004 22:40:42 von Niels Braczek

Bernd Kuegle schrieb:

> Habe mein Problem immer noch nicht gelöst. Beim Laden der csv-Datei
> in die SQL-DB mittel php-Script werden die Umlaute nicht korrekt
> umgewandelt. Hier der zuständige php-Code:
>
> foreach ($file_contents_line as $key => $val)
> {
> $inserts .= (($key >= 1) ? ", " : "")."('";
> $values = explode(';'$val);

Syntax Error

>
> for ($j = 0; $j < count($values); $j++)
> {
> $inserts .= addslashes(utf8_decode($values[$j])).(($j !=
> (count($values) - 1)) ? "', '" : "");

Wieso machst du eine UTF-8-Dekodierung, wenn Latin-1 vorliegt?

> }
> $inserts .= "')";
> }
>
> Bin ein php-Newbie. Wie kann man den Code ändern, damit Umlaute
> korrekt geladen werden?

Der oben stehende Code arbeitet nicht, weil er syntaktische Fehler
enthält. Davon abgesehen würde er nicht funktionieren, wenn ein String
ein Semikolon enthielte. Die ternären Operatoren ließen sich durch
Verwendung von implode() erfolgreich vermeiden, was den Code wesentlich
lesbarer machen würde.

Von Alledem abgesehen: Verwende besser die vorbereiteten Funktionen für
CSV-Dateien [1], statt alles zu Fuß zu machen.

[1] http://de2.php.net/manual/en/function.fgetcsv.php

MfG
Niels

--
"Klar weiß ich, dass ich den Lack mit einem Tuch polieren kann, wie alle
Anderen das machen, ich möchte aber den Hammer benutzen. Wie geht das?"