Ankündigung

Einklappen
Keine Ankündigung bisher.

UTF-8, ISO-8859-1 - Problem mit Euro-Zeichen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • UTF-8, ISO-8859-1 - Problem mit Euro-Zeichen

    Hallo,

    ich habe eine PostgreSQL8-DB unter Windows und nutze XAMPP für Windows 1.4.13.

    Die DB wurde mit dem Zeichensatz UNICODE angelegt, weil LATIN1 beim Import der Daten beim Konvertieren abbrach.

    Textdatei wurde unter Windows erstellt, Inhalte werden im Editor und nach dem Import auch in der PostgreSQL-DB korrekt dargestellt.

    Nach Lesen verschiedener Beiträge konnte ich die Darstellung der Umlaute schon mal korrigieren, indem ich den Ausgabewert mit utf8_decode($data["betreff_text"]) schreibe. Problem macht das Euro-Zeichen, hier erscheint ein Fragezeichen.

    Auch
    Code:
    iconv_set_encoding("internal_encoding", "UTF-8");
    iconv_set_encoding("output_encoding", "ISO-8859-1");
    hat nichts gebracht.

    Beim Einsatz von iconv('UTF-8', 'ISO-8859-1', $data["betreff_text"]) anstelle utf8_decode($data["betreff_text"]) werden alle Zeichen ab dem Euro-Zeichen abgeschnitten und erscheinen nicht in der Ausgabe.

    Kennt jemand von Euch ein Lösung für mein Problem?

    Gruß und Dank Rainer

  • #2
    Du solltest vielleicht einen Zeichensatz verwenden, der das Euro-Zeichen auch enthält, ISO-8859-1 tut das nämlich nicht. Nimm mal ISO-8859-15.
    Und zum Konvertieren ist mb_convert_encoding() robuster.
    mod = master of disaster

    Kommentar


    • #3
      Hallo,

      leider hat Dein Hinweis nur insoweit eine Änderung gebracht, daß anstelle des Fragezeichens ein ¤ (wird in der Zeichentabelle von Windows als Währungssymbol bezeichnet) erscheint.

      Angepaßt habe ich im head-Bereich:
      Code:
      <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
      und bei der Ausgabe:
      Code:
      mb_convert_encoding($data["betreff_text"],"ISO-8859-15","UTF-8")
      Da der Code entsprechend der von Dir vorgeschlagenen Einstellung ISO-8859-15 stimmt, vermute ich irgendeine Einstellung bei XAMPP (PHP) oder meinem Rechner. Bin mir aber nicht sicher, wo ich mit der Suche beginnen soll.

      Gruß und Dank Rainer

      Kommentar


      • #4
        Der Fehler ist, dass der Browser das noch als iso-8859-1 interpretiert.
        Wahrscheinlich brauchts noch ein
        header("Content-type: text/html; charset=iso-8859-15");
        um den zu überreden.
        mod = master of disaster

        Kommentar


        • #5
          Hallo,

          vielen Dank, mit header(...) funktioniert es nun.

          Gruß Rainer

          Kommentar


          • #6
            Wieso gibst du die Daten nicht einfach in UTF-8 aus, wenn sie schon so vorliegen? Dann ersparst du dir das Konvertieren. Immerhin wird UTF-8 deutlich besser unterstützt als ISO-8859-15.

            Kommentar


            • #7
              Hallo,

              Gute Frage - blöde Antwort: lag wohl an der Entstehung der Seite.

              Ich hab das Ganze ohne Konvertierung ausgegeben - Fehlerhafte Anzeige.

              Habe es gleich probiert und in meta und header() jeweils UTF-8 angegeben, die Konvertierungsfunktion rausgenommen und bin nun mit dem Ergebnis zufrieden.

              Nur muß ich auf jeden Fall die Ausgabe mit header("Content-type: text/html; charset=UTF-8"); beginnen, denn die Änderung im Browser (firefox) auf Standard UTF-8 bzw. auch ISO-8859-15 hat nichts gebracht und somit gehe ich wohl sicher, daß die Ausgabe überall korrekt erfolgt(?).

              Vielen Dank für Eure Hilfe.

              Gruß Rainer

              Kommentar

              Lädt...
              X