Mathias: PHP / UTF-8 / Postgresql

Als Datenbank verwende ich Postrgesql 8.14, Kodierung ist UTF-8.
Sonderzeichen (ä ü ö), die aus der Datenbank kommen, werden richtig dargestellt.
Meine HTML Seite gibt das meta-tag mit der Kodierung wieder:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

Daten aus der Datenbank werden richtig dargestellt.
Zeichenketten, die in der PHP Seite direkt stehen werden nicht richtig dargestellt,
"löschen" wird als l?schen ausgegen.
Mit der Funktion  mb_convert_encoding('löschen', 'UTF-8');
wird löschen wieder richtig dargestellt.

In der PHP-INI habe ich die Direktive
default_charset = "UTF-8"
gesetzt.

Weiß vielleicht jemand, was ich anstellen muss, damit Zeichenketten aus der Datenbank und Zeichenketten die in der PHP Seite stehen und mit echo ausgegeben werden, richtig dargestellt werden?

Mit den mbstring Optionen habe ich einiges ausprobiert, entweder wurde dann aber der Datenbank Inhalt nicht mehr richtig wiedergegeben , oder der Inhalt der PHP Seite.

Danke & Gruß,
Mathias

  1. hi,

    Zeichenketten, die in der PHP Seite direkt stehen werden nicht richtig dargestellt, "löschen" wird als l?schen ausgegen.
    Weiß vielleicht jemand, was ich anstellen muss, damit Zeichenketten aus der Datenbank und Zeichenketten die in der PHP Seite stehen und mit echo ausgegeben werden, richtig dargestellt werden?

    Du möchtest dein PHP-Script als UTF-8 abspeichern.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Du möchtest dein PHP-Script als UTF-8 abspeichern.

      Wie mache ich das? Einstellung im Editor, oder was meinst Du?
      Danke & Gruß,
      Mathias

      1. ok, speichern im richtigen Format, irgendwie logisch.
        danke.

  2. Moin!

    Meine HTML Seite gibt das meta-tag mit der Kodierung wieder:

    Das reicht unter Umständen nicht aus, entscheidend ist immer, was der Server im HTTP-Header sagt!

    Mit PHP passende Header setzen geht ja aber.

    Daten aus der Datenbank werden richtig dargestellt.
    Zeichenketten, die in der PHP Seite direkt stehen werden nicht richtig dargestellt,
    "löschen" wird als l?schen ausgegen.
    Mit der Funktion  mb_convert_encoding('löschen', 'UTF-8');
    wird löschen wieder richtig dargestellt.

    Hast du dein Skript UTF-8-codiert abgespeichert?

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Moin!

      Meine HTML Seite gibt das meta-tag mit der Kodierung wieder:

      Das reicht unter Umständen nicht aus, entscheidend ist immer, was der Server im HTTP-Header sagt!

      Mit PHP passende Header setzen geht ja aber.

      Kurze Frage, was wäre der richtige Header?

      Daten aus der Datenbank werden richtig dargestellt.
      Zeichenketten, die in der PHP Seite direkt stehen werden nicht richtig dargestellt,
      "löschen" wird als l?schen ausgegen.
      Mit der Funktion  mb_convert_encoding('löschen', 'UTF-8');
      wird löschen wieder richtig dargestellt.

      Hast du dein Skript UTF-8-codiert abgespeichert?

      Nein, wahsaga hat die gleiche Frage gepostet, ich nehme an, der Editor sollte dass machen, können, eingestellt werden?

      • Sven Rautenberg

      Danke & Gruß,
      Mathias

      1. ok, speichern im richtigen Format, irgendwie logisch.
        danke.

      2. Moin!

        Meine HTML Seite gibt das meta-tag mit der Kodierung wieder:

        Das reicht unter Umständen nicht aus, entscheidend ist immer, was der Server im HTTP-Header sagt!

        Mit PHP passende Header setzen geht ja aber.

        Kurze Frage, was wäre der richtige Header?

        Im Prinzip der, den du mit deinem Meta-Tag zu simulieren versuchst - aber der gilt eben nur, wenn HTTP dazu nichts aussagt - im Zweifel eben genau dann nicht, wenn alles schief läuft.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."