phpbar.de logo

Mailinglisten-Archive

[php] Umlaute werden nicht richtig dargestellt

[php] Umlaute werden nicht richtig dargestellt

Simon Bienlein s.bienlein at gmx.de
Die Apr 24 16:10:19 CEST 2007


Hallo Lutz,

Lutz Zetzsche wrote:
> Hallo Simon,
>
> Simon Bienlein schrieb:
>> der Header war auf ISO-8859-1 gesetzt. Da es ja funktioniert, wenn
>> ich den HTML-Code abspeichere und lokal öffne dachte ich, dass hier
>> keine Anpassung notwendig ist.
>
> nein, hier ist auch keine Anpassung nötig, wenn Du auf dem VServer
> alles identisch eingerichtet hast.

genau das ist die gute Frage. Beim alten Hoster hatte ich nur begrenzten
SSH-Zugriff und keinen Einfluss auf die Konfiguration. Beim VServer bin
ich root und installierte PHP5, MySQL5 und Apache 2.

>> ich konvertierte den MySQL-Dump auch mittels
>> recode von UTF-8 nach ISO und spielte ihn erst dann auf dem VServer
>> ein.
>
> Hm, also doch eine Konvertierung. :-) Warum hast Du das gemacht? Hat
> das einen speziellen Grund? Ansonsten hätte ich alles so gelassen,
> wie es auf dem vorherigen Server war.

Ich erstellte das Dump mittels mysqldump und führte anschließend
file backup.sql
aus. Mir wurde dann angezeigt. dass die Datei im UTF-8-Format sei. Da
das CMS nicht auf UTF-8 läuft oder das jedenfalls für mich auch Neuland
ist, konveertierte ich mittels recode.

>> Jetzt habe ich den Header im HTMl-Code mal auf UTF-8 geändert und
>> jetzt funktioniert es auch online.
>
> Hm. Mehr kann ich dazu nicht sagen, weil die Informationslage etwas
> dünn ist. :-)

Es funktionierte auch nicht alles. Ein paar Seiten wollten nicht und ich
trug erneut ISO-8859-1 ein und jetzt scheint es zu funktionieren.

> Das kannst Du ja ganz einfach feststellen, z.B. in phpMyAdmin. Da
> stehen all diese Informationen drin.

Wenn ich mich beim alten Hoster ins phpMyAdmin einlogge, sehe ich keine
Angabe über den zeichensatz der Datenbank. Es wird aber eine alte
MySQL-Version (MySQL - 3.23.58-log) ausgegeben, was dann für ISO
spricht. Im Domainfactory Kundenmenü ist aber MySQL in der Version
4.1.22 für diese Datenbank ausgewählt.

Im phpMyAdmin auf dem VServer steht unter anderem:

Server Version: 5.0.32-Debian_7etch1-log
MySQL-Zeichensatz: UTF-8 Unicode (utf8)

>> Wie kann ich denn den zeichensatz des MySQL-Dumps der ursprünglichen
>> Datenbank ermitteln?
>
> Eine ganz simple Möglichkeit ist, die Datei im Browser zu öffnen,
> wenn sie nicht zu groß ist, und mal manuell den Zeichensatz auf
> ISO-8859-1 und UTF-8 stellen. Du siehst ja dann, mit welcher
> Einstellung die Daten korrekt angezeigt werden. :-)

Das ist eine Prima Idee. Ich stellte die Codierung auf UTF-8 um und es
wurde im Browser richtig angezeigt. Ich hätte es also nicht umwandeln
dürfen. Glaube mich aber zu erinnern, dass ich beim Import auf der
MySQL-Konsole via
source backup.sql
Fehlermeldungen erhielt.

Sollte man ein Backup besser via phpMyAdmin oder via Konsole einspielen?
Auch bei phpMyAdmin kann man auf der Startseite die gewünschte Kodierung
auswählen. Auch die MySQl-Konsole kann man IMHO beeinflussen. Am Abend
werde ich das wohl noch einmal nachspielen.

Schöne Grüße
von Simon



php::bar PHP Wiki   -   Listenarchive