Probleme mit libcurl bei CURLOPT_POSTFIELDS

Hey,

Du sendest die Daten vermutlich in UTF-32 oder UTF-16 (welches OS?).
OS ist Windows Server 2008 R2 (64-bit).

Ich sende also keinen UTF-8 string? Liegt der string also gar nicht als UTF-8 vor?
Wie kann ich das ändern?

UTF-8 Strings kannst du ganz normal mit std::string verarbeiten. (nur die Länge des Strings stimmt nicht unbedingt mit der Anzahl der Zeichen überein)
D. h., dass auch Umlaute etc. dort problemlos möglich sind?


Gruß
 
OS ist Windows Server 2008 R2 (64-bit).
Windows verwendet (intern) UTF-16.
Ich sende also keinen UTF-8 string? Liegt der string also gar nicht als UTF-8 vor?
Wie kann ich das ändern?
Du mußt umkodieren. Siehe http://msdn.microsoft.com/en-us/library/dd374130(VS.85).aspx
D. h., dass auch Umlaute etc. dort problemlos möglich sind?
Ja, UTF-8 ist eine Unicode Kodierung.

Gruß
 
Das Programm muss sowohl auf Windows als auch Linux laufen, daher bräuchte ich eine plattformübergreifende Möglichkeit.
Gibt es sowas?

Bedeutet das weiterhin, dass ich gar keine wstrings verwenden muss, sondern nur std::strings?


Gruß,

badday
 
Das Programm muss sowohl auf Windows als auch Linux laufen, daher bräuchte ich eine plattformübergreifende Möglichkeit.
Gibt es sowas?
Es gibt z.B. die UCU Bibliothek von IBM. Ansonsten, schau mal hier: http://stackoverflow.com/questions/148403/utf8-to-from-wide-char-conversion-in-stl

Mußt du denn die Daten unbedingt in UTF-8 senden? Du könntest ja evtl. einfach die richtige Kodierung angeben...
Bedeutet das weiterhin, dass ich gar keine wstrings verwenden muss, sondern nur std::strings?
Ja, der Vorteil von UTF-8 ist, dass es ASCII kompatibel ist (und diese Zeichen auch weiterhin nur 1 Byte verwenden).

Gruß
 
Was wäre ich ohne deine Hilfe?
Der Link war (mal wieder) goldrichtig, nun funktioniert es.

Vielen Dank!

Gruß,

badday
 
Zurück