Besondere Vars übergeben

Servus Community,

Ich will besondere Zeichen, wie z. B. π (=pi) oder ä an eine Image-Script (php) übergeben.
image.png.php?zeichen=%CF%80 (=pi) bzw. image.png.php?zeichen=%E4 (=ä)

<?php

// Browser als Bild vorgaukeln
header(„Content-type: image/png; charset=utf-8“);
$Pfad_Grafik = „image.png“;
$Grafik = [color=#0000FF]imagecreatefrompng/color;
$Pfad_ttf = „arial.ttf“;
$Daten_Grafik = [color=#0000FF]getimagesize/color;
$Breite_Grafik = $Daten_Grafik[0];

// Füllen der Variable mit den festgelegten Zeichen: $_GET[‚zeichen‘]
$zeichen = [color=#0000FF]rawurldecode/color; // Hier liegt der Fehler, glaub ich; ist ja kein UTF-8 Dokument!
$Schriftgroesse_zeichen = 40;
$Schriftwinkel_zeichen = 0;
$Breite_Hoehe_Array_zeichen= imagettfbbox($Schriftgroesse_zeichen, $Schriftwinkel_zeichen, $Pfad_ttf, $zeichen);
$Breite_zeichen = $Breite_Hoehe_Array_zeichen[2] - $Breite_Hoehe_Array_zeichen[0];
$Hoehe_zeichen = $Breite_Hoehe_Array_zeichen[7] - $Breite_Hoehe_Array_zeichen[1];
$x_Wert_zeichen = round($Breite_Grafik / 2 - $Breite_zeichen / 2);
$y_Wert_zeichen = 330;
$Schriftfarbe_zeichen = imagecolorallocate($Grafik, 255, 255, 255);
imagettftext($Grafik, $Schriftgroesse_zeichen, $Schriftwinkel_zeichen, $x_Wert_zeichen, $y_Wert_zeichen, $Schriftfarbe_zeichen, $Pfad_ttf, $zeichen);

[color=#0000FF]imagepng/color;
[color=#0000FF]imagedestroy/color;

?>

Falls ihr Fehler im Code findet, war dieser nicht beabsichtigt. Mein Code funktioniert mit „normalen“ Zeichen!
Aber, wie zu erwarten, klappt das mit „komischen“ Zeichen nicht. Ich muss das irgendwie anderes kondieren? Griechen können ja schließlich auch mit php proggen! Oder klappt das überhaupt nicht.

:hail: Bitte um Antwort :hail: danke

rawurldecode auf den Parameter anzuwenden, ist überflüssig - PHP stellt die Daten eh schon dekodiert zur Verfügung.

Das Manual zu imagettftext sagt:

[quote]The text string in UTF-8 encoding.

May include decimal numeric character references (of the form: €) to access characters in a font beyond position 127. The hexadecimal format (like ©) is supported. Strings in UTF-8 encoding can be passed directly.[/quote]

rawurldecode() brauchst du in der Tat nicht, du musst lediglich dafür sorgen, dass der Text UTF-8 kodiert ist. So ist ein ä z.b. nicht %E4 sondern %C3%A4, wenn es richtig übermittelt werden soll.

mfg Balmung

Wenn ich zu dumm bin, dann sagt es mir bitte.

Die Frage lautet also: „Wie wandle ich eine URL in Utf-8?“ Mit [color=#0000FF]rawurldecode/color alleine geht es nicht, da bekommt man den „Kasten“.

utf8_encode() :ps:

Nein, die Frage lautet, wie kodiere ich ein Sonderzeichen in UTF-8, bzw. wo schlage ich den Code-Point, den es in der Unicode-Zeichentabelle hat, nach.

Das (raw)urldecode vollkommen fehl am Platze ist, wurde dir bereits gesagt.

du musst dein dokument utf-8 kodieren und ganz oben solltest du folgendes einfügen:

<?php header("Content-Type: text/html; charset=utf-8"); ?>

(falls ich falsch liege belehrt mich eines besseren)

[quote=“lenz”]du musst dein dokument utf-8 kodieren und ganz oben solltest du folgendes einfügen:

<?php header("Content-Type: text/html; charset=utf-8"); ?>

(falls ich falsch liege belehrt mich eines besseren)[/quote]
er will ein Bild ausgeben, das hat nix mit dem Content-Typs einer HTML-Datei zu tun…

sollte reichen

ups :stuck_out_tongue: