MySQL: utf-8 hinein aber leider nur ISO 8859-15 (?) wieder heraus!

TinniTuss

Erfahrenes Mitglied
Hallo Freunde

Vor einiger Zeit habe ich alle an meinen WebSites beteiligten Dateien (ca.500) in utf-8 umgewandelt. Alles was aus dem Editor rausgeht ist utf-8.

Bisher wurden die einzelnen (Parzellen-)Dateien in einer Art selbstgestricktem CMS per (PHP-)include eingebunden. Diese Inhalte liegen zu 99,5% als HTML-Code vor.

In Zukunft möchte ich auf die gleichen Inhalte per Datenbank zugreifen, damit ich meine Content-Bestände besser 'händeln' kann, und den Überblick nicht verliere. (ggf. verbunden mit einem Performance-Gewinn.

Die Speicherung in eine MySQL-Datenbank funktioniert.

Zunächst habe ich alle include-Dateien in ein Array gepackt und auf Konsistenz getestet.
In dem Übertragungsprogramm wird zunächst die MySQL-Tabelle gelöscht, wenn sie existiert, und dann per Definition als utf-8-Tabelle mit utf-8-Datenfeldern neu erstellt.

Mit dem Adminer (v3.01) erkenne ich, dass alle 500 Datensätze angekommen sind und dass Umlaute wie Umlaute dargestellt werden. Möglicherweise trügt hier bereits irgendwie der Schein....

...denn von der Datenbank zurück in meine PHP-Anwendung, auf meinen Browser (utf-8-Voreinstellung) werden die Umlaute nur noch verhackelt dargestellt und erst nach Browsereinstellung auf ISO 8859-15 wieder lesbar.

Wo liegt genau die Ursache für dieses Problem? Ich will mich auf gar keinen Fall den Daten beugen und notgedrungen alles wieder auf DIN-8859-15 oder ähnliches umstellen.

Wer Ahnung hat möge mir bitte helfen, aber bitte nicht auf allzu akademischem Niveau, in PHP und MySQL bin ich nämlich eine 'Nulpe'. (bin schon heilfroh, dass soweit alles läuft...)

Also... : Ich will utf-8 und nix anderes...
bitte, bitte...
HH.


PS.
Man verweise mich bitte nicht auf das Handbuch und die offizielle Dokumentation, die haben mir bisher nicht weitergeholfen. Ich bin noch nicht so weit, dass ich die gesammte Terminologie verstehe.

Die Bücher 'MySQL für Dummies' (kannste in der Pfeife rauchen...!) und Koffler/Öggl: 'PHP 5.3 & MySQL 5.1 (sehr gut aber hilft trotzdem nicht) liegen vor.
 
Wer lernen will muss lesen - sagt ein altes Sprichwort. :D

Zur Lektüre empfehle ich utf8_decode und utf8_encode (auch wenn die für ISO-8859-1 da sind).
Vielleicht ist aber auch iconv - als Handbuch bzw. iconv - als Funktion dein Freund.

Mit einer dieser beiden Funktionionen welche du auf den jeweiligen String anwendest wirds wohl klappen.

Man verweise mich bitte nicht auf das Handbuch und die offizielle Dokumentation, die haben mir bisher nicht weitergeholfen. Ich bin noch nicht so weit, dass ich die gesammte Terminologie verstehe.
Dies ist ein Hilfeforum für Leute die was lernen wollen und nicht für Leute die fertige Lösungen suchen. Zum lernen gehört aber, dass man sich mit dem Problem auseinandersetzt.
 
Zuletzt bearbeitet:
Hallo dwex

Danke für den Tipp.

Ich beneide die Leute, die schon auf Grund einer kauderwelschen Beschreibung sofort die Pappenheimer erkennen.

utf8_encode()
war (zumindest für das aktuelle Teilproblem) die Lösung.

Zum Glück funktionierte diese Funktion genau an der gleichen Stelle, an der ich
vorher schon mit andere Funktionen experimentiert hatte.

Das ganze Leben ist ein Lernen, es ist aber nicht notwendig, dass jeder das Rad
für sich selbst neu erfinden muß.

Mit diesem Zeichenkodierungskram schlage ich mich schon lange genug und immer
wieder herum, und mit dieser Teilproblematik im speziellen schon wieder seit zwei Tagen.

Dein pädagogischer Ansatz in Ehren, aber die oberste Hälfte deines Beitrages war völlig ausreichend.


Vielen Dank
HH.
 

Neue Beiträge

Zurück