Seite 1 von 1
Wie funktioniert die Unicode-Unterstützung von phpBB?
Verfasst: 13.01.2004 20:27
von DeepRed
Durch Zufall ist mir aufgefallen, dass phpBB Unicodebeiträge z.B. mit chinesischen Schriftzeichen fehlerfrei einlesen und darstellen kann, ohne dass dies PHP oder MySQL unterstützen würden. Sämtliche durch ein IME eingegebene Zeichen werden in Unicode-Entities (&#xxxxx;) umgewandelt und auch so in der Datenbank abgespeichert. Das gefällt mir sehr gut, da dadurch die gewählte Codierung völlig irrelevant ist (eine komplette Unicode-Schriftart natürlich vorausgesetzt).
Nun benötige ich genau so eine Unicode-Unterstützung für ein Projekt, habe aber bei Untersuchung des phpBB Quellcodes nicht herausfinden können, wie genau die Umwandlung der Nicht-ASCII-Zeichen in der Textbox in Entitities, und umgekehrt, realisiert wird. Wer kann mir da weiterhelfen?
Verfasst: 13.01.2004 20:50
von Pyramide
[php:htmlentities]
Verfasst: 13.01.2004 20:52
von R. U. Serious
includes/functions_post.php
Code: Alles auswählen
$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#');
$html_entities_replace = array('&', '<', '>');
$unhtml_specialchars_match = array('#>#', '#<#', '#"#', '#&#');
$unhtml_specialchars_replace = array('>', '<', '"', '&');
setz die "Umwandlungsarrays" (hol dir das lieber nochmal aus der Datei, kann sein, dass das Board jetzt beim posten was durcheinanderwürfelt...).
Und angewendet werden sie so:
Code: Alles auswählen
preg_replace($html_entities_match, $html_entities_replace, $message);
preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, $message)
Verfasst: 13.01.2004 21:25
von DeepRed
R. U. Serious hat geschrieben:includes/functions_post.php
Code: Alles auswählen
$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#');
$html_entities_replace = array('&', '<', '>');
$unhtml_specialchars_match = array('#>#', '#<#', '#"#', '#&#');
$unhtml_specialchars_replace = array('>', '<', '"', '&');
setz die "Umwandlungsarrays" (hol dir das lieber nochmal aus der Datei, kann sein, dass das Board jetzt beim posten was durcheinanderwürfelt...).
Und angewendet werden sie so:
Code: Alles auswählen
preg_replace($html_entities_match, $html_entities_replace, $message);
preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, $message)
Das hatte ich auch schon gefunden, aber es funktioniert nicht. Ich bekomme als Ergebnis, wenn ich mit echo htmlspecialchars(...); ausgebe, nur ein Kauderwelsch.