#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. + Multi-Zitat Zitieren
#2 4. Dezember 2011 AW: Ascii umwandeln dann wird es zeit, dass du dein system auf UTF-8 (unicode) umstellst, dann brauchst du keine ♥ 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 ; + Multi-Zitat Zitieren
#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 ♥ ausgegeben, nun wollte ich wissen wie ich ♥ wieder zurück umwandeln kann. Das heißt der String "Liebe ♥" soll also zu "Liebe ♥" und anschließend einfach abgespeichert werden. Oh ok etwas dazu gelernt + Multi-Zitat Zitieren
#4 4. Dezember 2011 AW: Ascii umwandeln PHP: $text = mb_convert_encoding ( $text , 'UTF-8' , 'HTML-ENTITIES' ); + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren