Forum: Programmieren allgemein
by Flocke,
14. Apr 2006
Das ist aber genau die Codierung für "€" in UTF-8, drei Bytes mit den Werten $E2, $82 und $AC hintereinander. Vielleicht hast du ja schon genau das, was du brauchst, und glaubst es nur selbst nicht?
Macht meine Routine doch für dich. Im Grund musst du nur die Bits des Unicodes (in diesem Beispiel 20AC = 10.0000.1010.1100) von rechts nach links für die "x" einsetzen. Dann erhältst du die...
Forum: Programmieren allgemein
by Flocke,
14. Apr 2006
Recht hast du, mein Fehler.
Zurück zum Thema: so sollte es gehen:
function hex2utf8($str)
{
$i = hexdec($str);
if ($i < 0x80)
return chr($i);
Forum: Programmieren allgemein
by Flocke,
14. Apr 2006
Der Aufruf "utf8_decode(\'&#x\\1;\');" konvertiert nicht wirklich etwas, denn die Eingabe ist ja kein UTF8.
Du hast den UTF16-Hexadezimalcode (20AC) und musst das nach UTF8 "\xE2\x82\xAC" konvertieren. Muss man sich jetzt nur noch die Konvertierungsregeln ansehen (siehe unten) und eine entsprechende Routine schreiben, die statt utf8_decode aufgerufen wird.
U-00000000 - U-0000007F: 0xxxxxxx ...