Zitat von
Frickeldrecktuxer_TM:
... aber soll doch zumindest mal erwähnt bleiben, wenn hier schon so viel Verwirrung um Zeichensätze und Zeichenkodierungen herrscht.
Recht hast du, mein Fehler.
Zurück zum Thema: so sollte es gehen:
Code:
function hex2utf8($str)
{
$i = hexdec($str);
if ($i < 0x80)
return chr($i);
$r = '';
for ($x = 0x3f; $i > $x; $x >>= 1)
{
$r = chr(0x80 + ($i & 0x3f)) . $r;
$i >>= 6;
}
return chr(0xfe - $x - $x + $i) . $r;
}
$str = preg_replace('#%u([a-f0-9]{4,4})#ie', 'hex2utf8(\'\1\');', $str);