URL Encode

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hallo,

    ich sende XML über Http an den Server.
    Damit alles richtig ankommt, ersetze ich zunächst XML-Sonderzeichen wie & in &, > in > etc.
    Da ich nichts gefunden habe, mache ich das selber, aber das ist ja auch überschaubar.

    Dann möchte ich das für das HTTP-Protokoll aufbereiten und rufe dafür stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding auf.
    Klappt so weit auch, nur das "&" bleibt stehen.

    Dieselbe Geschichte habe ich die Tage für Android in Java gemacht und dort wird auch das "&" brav in ein "%26" gewandelt, nur beim iPhone geht das nicht.

    Habt ihr eine Idee ?

    Konkretes Beispiel:
    "Du&Ich=100%"
    wird zuerst XML-konform:
    "Du&Ich=100%"
    dann kommt die URL-Codierung
    "Du&Ich=100%25"

    ich erwarte aber eigentlich:
    "Du%26amp;Ich=100%25"
  • Quellcode

    1. @implementation NSString (IX)
    2. -(NSString*)stringByAddingRFC2396PercentEscapesUsingEncoding:(NSStringEncoding)encoding
    3. {
    4. // C-CODE
    5. CFStringEncoding someEncoding = CFStringConvertNSStringEncodingToEncoding(encoding);
    6. if(someEncoding == kCFStringEncodingInvalidId)
    7. {
    8. return nil;
    9. }
    10. return [(NSString*)CFURLCreateStringByAddingPercentEscapes(NULL,
    11. (CFStringRef)self,
    12. NULL,
    13. (CFStringRef)NSStringIXEscapeTextWithEncodingChars,
    14. someEncoding) autorelease];
    15. }
    Alles anzeigen


    Viele Grüße