Bild erstellen: imagettftext(), neuer Webserver und Unicode...

Razalduria

Grünschnabel
Hallo!

Ich bin schon schier am verzweifeln...

Ich hab in PHP eine Bilderzeugung programmiert, aber seit ich auf einen neuen Webserver umgezogen bin, spielt das Script mit Sonderzeichen (ä, ö, ü usw.) nur noch verrückt...

Aussehen soll es so:
Klick! (Richtige Grafik)

Derzeit (auf dem neuen Webserver) sieht es so aus:
Klick! (Falsche Grafik)

Die Datenquelle sieht so aus:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<recenttracks user="Razalduria">
<track streamable="false">
            <artist mbid="6344d70b-da12-4f93-b7e0-c0be55044c41">Änglagård</artist>
    <name>Vandringar i vilsenhet</name>
    <mbid></mbid>
    <album mbid="071613d8-8d8e-4e83-86ae-05e9a0a49479">Hybris</album>
    <url>http://www.last.fm/music/%C3%84nglag%C3%A5rd/_/Vandringar+i+vilsenhet</url>
            <date uts="1194633719">9 Nov 2007, 18:41</date>
</track>
<track streamable="false">
            <artist mbid="6344d70b-da12-4f93-b7e0-c0be55044c41">Änglagård</artist>
    <name>Jordrök</name>
    <mbid></mbid>
    <album mbid="071613d8-8d8e-4e83-86ae-05e9a0a49479">Hybris</album>
    <url>http://www.last.fm/music/%C3%84nglag%C3%A5rd/_/Jordr%C3%B6k</url>
            <date uts="1194633049">9 Nov 2007, 18:30</date>
</track>

Ich hab schon alles probiert, utf8_encode(), utf8_decode(), iconv()... sieht alles nur noch schlimmer aus.

Wie gesagt, ein- und derselbe PHP-Code zur Erzeugung des Bildes sieht auf 2 verschiedenen Webservern völlig unterschiedlich aus... und ich krieg das nicht weg.

Hilfe...
 
Zuletzt bearbeitet:
Hallo @Razalduria

Hast du Zugriff auf die httpd.conf ?
Falls ja, dann schau mal nach was für eine Zeichkodierung der Server als Default hat und welche Sprache er eingestellt hat ?
 
Hallo,

nein, hab leider keinen Zugriff, ich hab das Problem aber auch gestern noch lösen können, und zwar wie folgt:
PHP:
$string = "lauter ulkige Sonderzeichen äöüÄÖÜß";
$convmap = array(0x0080, 0xffff, 0, 0xffff);
mb_encode_numericentity($string, $convmap, "UTF-8");

Nachdem ich jeden String mittels mb_encode_numericentity() wie oben gezeigt behandelt hab, klappt es.

Einziger Unterschied zwischen den beiden Web-Servern ist, das auf dem neuen PHP5 mit GD 2.0.34 lief und auf dem alten PHP4 mit GD 2.0.28 (Info nur der Vollständigkeit halber).

Die neue GD hat wohl ein Problem bei Sonderzeichen im UTF-8 Format mit der Funktion imagettftext();

Problem gelöst, Lösung gepostet, Danke trotzdem fürs lesen ;)
 

Neue Beiträge

Zurück