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

  • edv-rs
    hat ein Thema erstellt UTF-8, ISO-8859-1 - Problem mit Euro-Zeichen.

    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

  • edv-rs
    antwortet
    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

    Einen Kommentar schreiben:


  • toscho
    antwortet
    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.

    Einen Kommentar schreiben:


  • edv-rs
    antwortet
    Hallo,

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

    Gruß Rainer

    Einen Kommentar schreiben:


  • Waq
    antwortet
    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.

    Einen Kommentar schreiben:


  • edv-rs
    antwortet
    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

    Einen Kommentar schreiben:


  • Waq
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X