我将带有数据的发布请求发送到服务器:

var syncData = "data=Hello&World"
let urlRequest = NSMutableURLRequest(URL: NSURL(string: url)!, cachePolicy:  NSURLRequestCachePolicy.ReloadIgnoringCacheData, timeoutInterval: NSTimeInterval(60))

urlRequest.HTTPMethod = "POST"
urlRequest.HTTPBody = syncData.dataUsingEncoding(NSUTF8StringEncoding)


但是服务器无法解码&(ampersand)字符的问题。在服务器上,我仅收到单词“ Hello”。这不是服务器问题。因为我尝试使用java和python和curl发送此字符串。
一切正常。

我尝试了这个:
NSXMLParser problem with "&"(Ampersand) character

但这无济于事...有什么想法吗?

最佳答案

正如穆萨所说。解决方案将是:

let customAllowedSet =  NSCharacterSet(charactersInString:"=\"#%/<>?@\\^`{|}&").invertedSet
    syncData = syncData.stringByAddingPercentEncodingWithAllowedCharacters(customAllowedSet)!

    urlRequest.HTTPBody = syncData.dataUsingEncoding(NSUTF8StringEncoding)

关于ios - 将&符号转换为UTF 8,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34519078/

10-09 02:34