CHttpConnection und Umlaute
-
Hallo,
ich nutze CHttpConnection um auf meinen eigenen Dienst zuzugreifen der auf einem anderen Server läuft.Ich übergebe in der Anfrage URL Parameter mit denen was gemacht werden soll:
www.url.de/seite?dienst=dienstwahl¶meter1=a¶meter2...
Wenn Informationen angefragt wurden werden diese einfach als die angefragte Internetseite zurück gegeben (mit asp.net). Die lese ich dann ein.
Also im großen und ganzen:
CHttpFile* file = m_connection->OpenRequest(NULL, url + "?dienst=" + dienst + "¶meter1=" + parameter); file->SendRequest(); char buffer[256]; std::string result = ""; int charsRead; while((charsRead = file->Read(buffer,sizeof(buffer))) > 0) result.append(buffer,0,charsRead); file->Close(); delete file;
das funktioniert wunderbar. Er macht sogar was, wenn ich ihm einen Umlaut als Parameter oder als Antwort gebe. Nur kommt dieser nicht richtig an.
z.B. kommt ein gesendetes ü am Server als ¿ an (am Client ü).Kann ich meiner Internetkommunikation zwischen C++ mit CHttpConnection und asp.net (c#) die richtige Handhabung von Umlauten beibringen?
Danke
-
Hallo,
die Frage ist immer noch aktuell.Kann mir keiner helfen?
Danke
-
Ich kenne mich zwar mit keinem von beiden aus, aber ich denke du musst Unicode (+ locale codepage) verwenden.
-
hallo,
du kannst nicht alles per http senden, bestimmte Zeichen sind gesperrt.Mein Tip:
weise der Variable -> url <- die komplette Adresse mit Parameter zu.
Wenn das klappt, dann bau einfach Stück für Stück die Zeichenkette zusammen.
Vielleicht hast du einer Variable keine Zeichen zugewiesen?! So war es bei mir mal.Viel Erfolg
-
Du musst die Zeichen codieren, wenn Du diese in der URL mitgeben willst...
Siehe:
http://www.codeguru.com/cpp/cpp/cpp_mfc/article.php/c4029
http://www.koders.com/cpp/fidB2A537A71CAA62B45600A401E58354F15272EBBC.aspx?s=urlencode
http://www.geekhideout.com/urlcode.shtml
-
CHttpFile* file = m_connection->OpenRequest(NULL, url + "**&**dienst=" + dienst + "¶meter1=" + parameter);
Ich bin mir nicht 100% Sicher, aber ich glaube, das Zeichen kann man nicht ohne weiteres so übertragen?!