Wie funktioniert die Unicode-Unterstützung von phpBB?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
DeepRed
Mitglied
Beiträge: 2
Registriert: 13.01.2004 20:20

Wie funktioniert die Unicode-Unterstützung von phpBB?

Beitrag 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?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

[php:htmlentities]
R. U. Serious
Mitglied
Beiträge: 153
Registriert: 11.10.2003 12:33
Kontaktdaten:

Beitrag 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)
DeepRed
Mitglied
Beiträge: 2
Registriert: 13.01.2004 20:20

Beitrag 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.
Antworten

Zurück zu „Coding & Technik“