Thema: standard-charset für htmlspecialchars()

hallo zusammen!
folgende problematik: wir stellen momentan unsere server komplett von iso-8859-1 auf utf-8 um. dabei tritt das problem auf, dass in unseren codes ziemlich oft funktionen wie htmlspecialchars, htmlentities, strtoupper, strtolower usw verwendet werden. gibt man dort kein charset an, verwenden diese standardmäßig iso-8859-1. da die strings jedoch jetzt utf-8-codiert sind, gibt's jetzt natürlich falsche ausgaben. zur verdeutlichung:

<?php
    $mystring = 'äöüß';
    echo htmlentities($mystring).'<br />'; // so sieht unser php-code aus
    $mystring = utf8_encode($mystring); // das ist bei der umstellung auf utf-8 passiert
    echo htmlentities($mystring).'<br />'; // so sieht unsere ausgabe jetzt aus
    echo htmlentities($mystring, ENT_COMPAT, 'UTF-8).'<br />'; // das wäre die korrekte methode
?>

jetzt ist es doch eine unmögliche aufgabe, alle diese funktionen im code zu ändern.
wie kann ich php generell dazu bringen, das standard-charset auf UTF-8 zu ändern?
vorweg: die einstellung default_charset in der php.ini zu ändern bringt ebenso wenig, wie die iconv-funktionen oder mbstring. ich seh die einzige möglichkeit momentan darin, den php-source zu patchen (was ich allerdings tunlichst vermeiden möchte)...
danke, lg
flo

i'm still confused, but on a much higher level

2

Re: standard-charset für htmlspecialchars()

Hallo Flo

Wo sind denn bei euch die Daten, deren Umlaute kaputt sind? Im Sourcecode? Dann hat der sowieso eine Ueberarbeitung noetig. In einer Datenbank? Dann schreib ein Script, das diese Strings in den gewuenschten Zeichensatz umwandelt...
Hast du mal versucht, als Encoding der HTML-Seiten UTF-8 anzugeben?

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

gruss
Jonathan

Four legs good, two legs bad