[PHP] Unicode umwandeln

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Spo0n22, 4. Dezember 2011 .

Schlagworte:
  1. 4. Dezember 2011
    Unicode umwandeln

    Hallo Leute,

    ich habe eine kurze Frage zu Ascii.

    In der Datenbank werden manche Strings mit umgewandelten Ascii-Codes gespeichert.

    zB Liebe & #9829 (Leerzeichen entfernen RR wandelt den Code um, wie ich es auch möchte^^)

    nun wir das & Zeichen bei der Wiedergabe in & umgewandelt (htmlspecialchars($row['text'], ENT_QUOTES)), dann lautet der Text im Quelltext: Liebe ♥

    Nun möchte ich das & #9829; (Leerzeichen enfernen) vor dem Speichern in die Datenbank umgewandelt wird in ?.

    Der Text soll als "Liebe ?" gespeichert werden und nicht als "Liebe & #9829; (Leerzeichen entfernen)"

    Ich habe kein Einfluss auf die Texte, da diese automatisch eingefügt werden.
     
  2. 4. Dezember 2011
    AW: Ascii umwandeln

    dann wird es zeit, dass du dein system auf UTF-8 (unicode) umstellst, dann brauchst du keine &#9829 in der db speichern, sonder kannst direkt ♥ verwenden.

    und bitte verwende nicht den ausdruck "ASCII" für unicode zeichen.
    ASCII sind die zeichen, die du auf deiner tastatur zur verfügung hast (extended ein paar mehr)

    siehe: ASCII Table - ASCII and Unicode Characters

    naja, hier im forum ist es dreckig gelöst ... und zwar so:
    PHP:
    $text  htmlentities ( $text ENT_COMPAT );
    $text  preg_replace ( '/&([^\s;]+);/' '&$1' $text );

    print 
    $text ;
     
  3. 4. Dezember 2011
    AW: Ascii umwandeln

    Die Datenbank ist in UTF-8, bloss die Texte die eingefügt werden sind extern und sind meist schon verarbeitet und werden als &#9829 ausgegeben, nun wollte ich wissen wie ich &#9829 wieder zurück umwandeln kann.

    Das heißt der String "Liebe &#9829" soll also zu "Liebe ♥" und anschließend einfach abgespeichert werden.

    Oh ok etwas dazu gelernt
     
  4. 4. Dezember 2011
    AW: Ascii umwandeln

    PHP:
    $text  mb_convert_encoding ( $text 'UTF-8' 'HTML-ENTITIES' );
     
  5. 4. Dezember 2011
    AW: Ascii umwandeln

    Ok super, das mit dem Unicode funktioniert jetzt.

    Jetzt werden die Umlaute leider falsch angezeigt. Habe mich eben umgeschaut wie man das lösen kann aber bin nicht wirklich weiter gekommen.

    üäö wird als üäö ausgegeben.
     
  6. 5. Dezember 2011
    AW: Ascii umwandeln

    das ist iso-8859 angezeigt in einer unicode-page.
    das musst du noch per utf8_encode umwandeln, dann sollte es klappen.

    PHP:
    // alle nicht-maskierten zeichen umwandeln
    $text  utf8_encode ( $text );

    // alle maskierten zeichen umwandeln
    $text  mb_convert_encoding ( $text 'UTF-8' 'HTML-ENTITIES' );
    der zweite schritt ist nicht wiklich nötig, da html-entities eh unicode-zeichen referenzieren, doch damit kannst du in deiner db ein paar bytes sparen.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.