1

I'm making a post with a required "&" in one of the parameters. I've tried %26 for & with NSUTF8StringEncoding, as well as, stringByAddingPercentEscapesUsingEncodqing(NSUTF8StringEncoding). Not working still.

let params = "designers=dolce%26gabbana"    
let nStr = params.stringByAddingPercentEscapesUsingEncodqing(NSUTF8StringEncoding)
let postData = nStr?.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
request.HTTPBody = postData

The string im posting is "Dolce & Gabbana" and the server only recognizes it with the "&".

Thanks!

Tuan Anh Vu
  • 760
  • 1
  • 7
  • 26

1 Answers1

3

You should try with CFURLCreateStringByAddingPercentEscapes cause stringByAddingPercentEscapesUsingEncodqing does not escapes all characters. By using CFURLCreateStringByAddingPercentEscapes, you choose characters to escapes.

Example:

var encodedStr = CFURLCreateStringByAddingPercentEscapes(
    nil,
    "Dolce & Gabbana",
    nil,
    "&", //you can add another special characters
    CFStringBuiltInEncodings.UTF8.rawValue
)

Here is another SO question about this topic (in Objective-C)

Community
  • 1
  • 1
Duyen-Hoa
  • 15,384
  • 5
  • 35
  • 44