Umlaute in mit GD-generierter Grafik werden falsch angezeigt...

  • Themenstarter Themenstarter Bailor
  • Beginndatum Beginndatum
B

Bailor

Ich bin am verzweifeln; auf dem einen server läuft alles wunderbar, an nem Anderen will er einfach keine "besonderen Zeichen" richtig anzeigen :(

Ich versuche mit ImageTtfText in eine Grafik einen Text zu schreiben; einmal brauch ich das Symbol ° und einmal den Buchstaben ü... und bei beiden wird jeweils irgendein Käse gezeichnet...

So sieht die eine Stelle im Code aus:
PHP:
$text =  'für '.$x; 
ImageTtfText ( $map->img, 10, $fontAngle, 11, 31, $map->color['white'], $fontFile, $text);

ich habs auch schon mit chr(252) statt dem ü probiert; klappt auch nicht; hat jemand eine Idee?
 
Übergib den Text mal als UTF-8-kodiert:
PHP:
$text =  'für '.$x;
ImageTtfText ( $map->img, 10, $fontAngle, 11, 31, $map->color['white'], $fontFile, utf8_encode($text));
Denn andernfalls müsstest du alle Zeichen ab der Position 127 durch Zeichenreferenzen ersetzen müssen (siehe englische Parameterbeschreibung der imagettftext()-Funktion).
 
Hm, utf8_encode() bringt leider nichts; die Zeichen ganz genauso wie ohne falsch ausgeben.

Und durch zeichenreferenzen ersetzen... also mit ü bzw. ü ?
Das hab ich auch schon versucht und hilft mir leider auch nicht weiter... :(

Werd mir die englische funktionsbeschreibung nochmal zu gemüte führen...
 
Okay, ich habs eingeschränkt... liegt scheinbar an der Funktion imagettftext().
imagestring geht nämlich fehler und problemlos...

Ich erinnere mich schwach daran, dass die ttf-schriftarten-files manchmal probleme machen können; weis da jemand etwas genaueres?


edit: Ja, es lag der Schriftarten-Datei... der andere Server (ältere Php-Version) hat aus irgendeinem Grund die Sonderzeichen in der Schriftart anders ausgelesen; so war mein ü nicht wie normal bei Ascii-Code 252,.sondern bei 159...
 
Zuletzt bearbeitet von einem Moderator:
Ein solch unterschiedliches Verhalten konnte ich festellen zwischen PHP Version 5.2.4.4 und 5.3.1. In der 5.2x Variante werden die Umlaute noch korrekt gezeichnet, unter 5.3x dann die Fehler. Beide Versionen haben verschiedene php_gd2.DLL's. Unter 5.2.4.4 liegt bei mir eine vom 4.Mai 2007 mit 802.816 Bytes und unter 5.3.1 ist die gleiche DLL vom 20. Dezember 2009 mit 1.307.280 Bytes.
 
Zurück