[PHP] Eurozeichen falsch dargestellt

Dieses Thema im Forum "Webentwicklung" wurde erstellt von DavyDave, 5. Juni 2011 .

Schlagworte:
  1. 5. Juni 2011
    Eurozeichen falsch dargestellt

    Hi,
    folgendes Problem:

    Der Text ist in iso-8859-1 und wird per API geladen.
    Die Seite ist in utf-8.

    Alle Zeichen wie äöüß sind gar kein Problem, nur werden die €€€ Zeichen €€€€im Chrome gar nicht angezeigt und im IE/FF ein komisches Zeichen angezeigt. Da es ja in iso-8859-1 eigentlich nicht existiert.

    Hatte jemand schon mal so ein Problem und weiß wie ich das lösen kann?

    Grüße
    Davy
     
  2. 5. Juni 2011
    AW: Eurozeichen falsch dargestellt

    Weder de- noch encode brachte was.
    Das einzige Resultat war dann, das alle Sonderzeichen falsch dargestellt worden sind.
     
  3. 5. Juni 2011
    AW: Eurozeichen falsch dargestellt

    es stimmt, das euro zeichen ist laut definition nicht im iso-8859-1 zeichensatz vorhanden, wurde aber von vielen softwareherstellern einfach an position 128 hinzugefügt und kann daher auch verwendet werden.

    das blöde daran ist, dass dieses zeichen nicht im standard zu finden ist und daher auch fehlerhaft konvertiert wird.

    die lösung: such nach € bzw. & #128; und ändere es in & #164 (ohne leerzeichen) - danach kannst du den string als iso-8859-15 behandeln und ohne probleme nach utf8 konvertieren.

    mb_convert_encoding() ist hierbei dein freund.
     
  4. 5. Juni 2011
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Eurozeichen falsch dargestellt

    mb_convert_encoding()
    Das hat ich auch versucht, aber irgendwie komm ich damit nicht zu recht.
    Naja, hab es jetzt irgendwie billig hinbekommen - wahrscheinlich wirst dir da erst mal an Kopf greifen

    Bild

    Ich hab auch versucht nach den Strings von dir zu suchen, aber weder das eine noch das andere hat er mir dann ersetzt. Dann kam ich auf die Idee ich kopiers Zeichen einfach aus FF raus .. naja, es geht jedenfalls.
     
  5. 5. Juni 2011
    AW: Eurozeichen falsch dargestellt

    PHP:
    <? php
    header
    ( 'Content-Type: text/plain; Charset=UTF-8' );

    $str  'hallo welt äöüß €' ;
    $str  str_replace ( chr ( 128 ),  chr ( 164 ),  $str );
    $str  mb_convert_encoding ( $str 'UTF-8' 'ISO-8859-15' );

    print 
    $str ;
     
  6. 5. Juni 2011
    AW: Eurozeichen falsch dargestellt

    Wenn das €-Zeichen dem Dezimalwert 128 zugeordnet ist, dann handelt es sich wahrscheinlich um CP1252 (Windows-1252).
    PHP:
    $str  mb_convert_encoding ( $str 'UTF-8' 'Windows-1252' 'ISO-8859-15' );
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.