PHP und UTF-8

Erstellt am 07. Oktober 2006
  in
 
616
vote

Noch ist php6 nicht in Sichtweite. Zeit wird es allerdings schön langsam. Im Moment funktioniert die Verarbeitung von UTF-8 Strings nur sehr dürftig, und die einzelnen Versionen haben immer wieder Bugs dabei.

Selbst mit mbstring hat man immer wieder so seine Problemchen. z.B. Dieser Code funktioniert unter php5 nicht, aber schon unter php4:


<?php

header
‘Content-Typetext/htmlcharset=UTF-8′ );

$str “Das den sind kommenden schlimme über Schäden oder am Dach!;
echo 
$str <br>;

mb_internal_encoding‘UTF-8′ );
echo 
preg_replace(/b(das|den|über|sind|am|oder)b/iu”@@@$str ) . <br>;
echo 
mb_eregi_replace(“b(das|den|über|sind|am|oder)b”@@@$str ) . <br>;

?>

Eigentlich sollte ja beides funktionieren. Wobei das \b in Kombination mit eregi_replace ja eigentlich ein Schwachsinn ist. Zumindes losen kann man das Problem, wenn man die Zeile

mb_regex_encoding( ‘UTF-8′ );
noch hinzufügt.