前言

今天遇到一个问题,本地将一个对象转成JSON字符串后传给后台,由于出现特殊字符&导致后台无法正确处理该字符串。经过一番Google,现将问题及解决方法记录如下。

解决方案

附上stackoverflow地址 http://stackoverflow.com/questions/24551816/swift-encode-url

附上常用字符集的解释 注释部分是对应的处理特殊字符的内容

URLFragmentAllowedCharacterSet  //  "#%<>[\]^`{|}
URLHostAllowedCharacterSet      //  "#%/<>?@\^`{|}
URLPasswordAllowedCharacterSet  //  "#%/:<>?@[\]^`{|}
URLPathAllowedCharacterSet      //  "#%;<>?[\]^`{|}
URLQueryAllowedCharacterSet     //  "#%<>[\]^`{|}
URLUserAllowedCharacterSet      //  "#%/:<>?@[\]^`


//swift3写法 let allowedCharacterSet = (CharacterSet(charactersIn: "!*'();:@&=+$,/?%#[] ").inverted) if let escapedString = originalString.addingPercentEncoding(withAllowedCharacters: allowedCharacterSet) { //do something with escaped string }