Eric Teubert: Zeichensatzproblem

Hallo,

ich bin gerade dabei, meine Scripts (PHP) auf UTF-8 umzustellen. Meine Datenbank, die bisher auf latin1_general_ci lief, habe ich auch auf utf8_unicode_ci umgestellt (MySQL - 5.0.24a-community)

Jetzt das Problem: Zwar stehen in der Datenbank noch immer die richtigen Zeichen, aber im Script Fragezeichen anstatt der Datenbankumlaute.

Wie sieht das Script aus:
Im HTML-Head:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">

Im PHP-Teil:
header('content-type: text/html; charset=utf-8');

File Encoding der Dateien habe ich per Editor auf UTF-8 gestellt

Was fehlt, was muss ich noch ändern, damit die Zeichenketten richtig ausgelesen/dargestellt werden?

Grüße

Eric

  1. Was passiert, wenn Du den Browser explizit anweist die Daten als UTF-8 zu interpretieren?

    1. Was passiert, wenn Du den Browser explizit anweist die Daten als UTF-8 zu interpretieren?

      Nichts, es bleibt bei den Fragezeichen.
      Ehrlichgesagt hätte mir das als "Lösung" auch kaum genügt, ich kann ja schlecht jeden User bitten, seinen Browser bitteschön auf UTF-8 umzustellen :P

      Grüße

      Eric

      1. Was passiert, wenn Du den Browser explizit anweist die Daten als UTF-8 zu interpretieren?

        Nichts, es bleibt bei den Fragezeichen.
        Ehrlichgesagt hätte mir das als "Lösung" auch kaum genügt, ich kann ja schlecht jeden User bitten, seinen Browser bitteschön auf UTF-8 umzustellen :P

        Das war kein Lösungsversuch, sondern eine Problemisolierung. Sei Dir nun sicher, dass Deine Daten nicht in UTF8 vorliegen.

        1. Das war kein Lösungsversuch, sondern eine Problemisolierung. Sei Dir nun sicher, dass Deine Daten nicht in UTF8 vorliegen.

          Okay .. heißt, in der Datenbank ist nicht drin, was draufsteht, also zumindest kein UTF8.
          War es denn falsch, einfach die Kollation von Datenbank, Tabelle und Spalte auf utf8_unicode_ci zu stellen ( oder wäre utf8_bin sinnvoller? ) oder mache ich es mir damit zu leicht?
          Denn wie gesagt, in der DB selbst sieht alles so aus, wie es sein soll, erst beim Auslesen entstehen die Fehler.

          Grüße

          Eric

  2. echo $begrüßung;

    Zwar stehen in der Datenbank noch immer die richtigen Zeichen, aber im Script Fragezeichen anstatt der Datenbankumlaute.
    Was fehlt, was muss ich noch ändern, damit die Zeichenketten richtig ausgelesen/dargestellt werden?

    Die Lektüre des MySQL-Handbuchkapitels Character Set Support. Die Lösung steht sogar schon auf der Kapitelübersichtsseite.

    echo "$verabschiedung $name";

    1. Die Lektüre des MySQL-Handbuchkapitels Character Set Support. Die Lösung steht sogar schon auf der Kapitelübersichtsseite.

      Huch, na das ist mir ja jetzt fast peinlich ...
      Danke für die Lösung, funktioniert wunderbar :)

      Grüße

      Eric

      1. Huch, na das ist mir ja jetzt fast peinlich ...
        Danke für die Lösung, funktioniert wunderbar :)

        Ist nur eine Kleinigkeit, aber es gab natürlich die zwei Möglichkeiten:

        • Daten wurden nicht konvertiert (bzw. als UTF-8) ausgeliefert
        • Daten wwerden falsch interpretiert (vom Browser)

        Da böte sich - wie eigentlich fast immer - eine rechtzeitige von Dir selbst vorzunehmende Problemisolierung an.

        Lully