AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein PHP + Post wandelt Hexwerte falsch um
Thema durchsuchen
Ansicht
Themen-Optionen

PHP + Post wandelt Hexwerte falsch um

Ein Thema von hitzi · begonnen am 23. Okt 2008 · letzter Beitrag vom 23. Okt 2008
Antwort Antwort
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#1

PHP + Post wandelt Hexwerte falsch um

  Alt 23. Okt 2008, 11:35
Hallo,

über ein Programm von mir schicke ich einen (Unicode)String zum Server. Dieser String wird vor dem Posten in das hexadezimale Format gebracht.

Beispielstring:
Zitat:
Жäöü
wird umgewandelt in
Zitat:
%416%E4%F6%FC
Wenn ich mir dann in PHP die Variable hole und testweise anzeigen lasse sieht sie wie folgt aus:
Zitat:
A6???
Die ordinalen Werte der "Fragezeichen" entsprechen den von "äöü" und ich kann zum Beispiel mit
Zitat:
$decodedStr .= "&#".ord($einzelnesZeichen).";";
später auch ordentlich darstellen.

Aber warum wird aus "Ж" (Ord=1046) "A6"???

Gruss

PS: Wenn ich spaßeshalber folgende Zeile teste:
Zitat:
echo "&# 1046;";
wird auch das "Ж" im Browser angezeigt.
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
HenKst

Registriert seit: 7. Jul 2008
113 Beiträge
 
#2

Re: PHP + Post wandelt Hexwerte falsch um

  Alt 23. Okt 2008, 11:37
Ich vermute mal weil 1046 einfach nicht in Ord reinpasst.

Ord kriegt nen 8bit wert und kann also nur zahlen bis 255 aufnehmen, alles was drüber ist wird abgeschnitten.
narf - not a real function
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#3

Re: PHP + Post wandelt Hexwerte falsch um

  Alt 23. Okt 2008, 11:40
Oha ... richtig. Danke für den Denkanstoß.

[EDIT] Daran liegt es doch nicht. ich rufe die Seite wie folgt auf:
%E4%F6%FC werden korrekt in die Umlaute umgewandelt. Nur aus %416 (das Zeichen Ж) wird A6 ohne dass irgendein Ord() oder sonstewas an die variable durften. Jetzt weiß ich auch warum A6. Der Server hat die %416 wie folgt zerlegt:
%41 -> Hexadezimaler Wert für "A"
6 -> 6

ergibt eben die A6. Konnte ich schön beobachten, nach dem ich mal die %416 in %415 geändert hatte - ergibt dann in der PHP Datei "A5".

Muss ich beim posten noch irgendetwas angeben, damit eine korrekte Umwandlung erfolgt oder muss ich grundsätzlich einen anderen Weg gehen um aus einen Delphiprogramm Unicodezeichen an ein PHP Datei zu übergeben?
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Volle

Registriert seit: 25. Nov 2003
Ort: Stuttgart
100 Beiträge
 
Delphi 7 Personal
 
#4

Re: PHP + Post wandelt Hexwerte falsch um

  Alt 23. Okt 2008, 12:20
ein ä wird auch nicht in %E4 umgewandelt sondern in %C3%A4 .
deshalb stimmt deine umwandlung von Ж in %416 noch nicht, das muesste %D0%96 sein -> weiter im alten thread :>
cYa n' sTay [ S ! C ]
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz