Как и в случае Swift2
stringByAddingPercentEscapesUsingEncoding()
устарел вместо stringByAddingPercentEncodingWithAllowedCharacters()
.Как кодировать специальный символ типа '(NSWindowsCP1250StringEncoding) в Swift2
Но как кодировать особенный характер, как '% & в swift2
Например, в iOS8
(swift1.2) я использовал следующий код для кодирования
NSURL(string: "myurl.php?deviceName=name’phone".stringByAddingPercentEscapesUsingEncoding(NSWindowsCP1250StringEncoding)!)
это прекрасно работает т.е. на сервере он правильно декодировать.
Но в iOS9
(Swift2.0) я использовал следующий код
NSURL(string: "myurl.php?deviceName=name ’phone".stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLFragmentAllowedCharacterSet())!)
Он не будет распознаваться должным образом.
скажите, пожалуйста, как я могу кодировать специальный charater в swift2.0?
EDIT: Eric D ответ правильный, но когда я закодировать ниже stringURL
не будет кодировать должным образом. Почему?
let stringURL = "https://my.server.com/login.php?e=email&dn=my’s iPad&d=5&er=D550772E-34BB-4DCB-89C9-E746FAD83D24&tz=330"
print(stringURL)
let charSet = NSCharacterSet.URLPathAllowedCharacterSet()
let encoded = stringURL.stringByAddingPercentEncodingWithAllowedCharacters(charSet)!
let url = NSURL(string: encoded.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLFragmentAllowedCharacterSet())!)!
print(url) //https%253A//my.server.com/login.php%253Fe=email&dn=my%25E2%2580%2599s%2520iPad&d=5&er=D550772E-34BB-4DCB-89C9-E746FAD83D ... 4&tz=330
EDIT 2:
Как кодировать NSWindowsCP1250StringEncoding в swift2.0?
попробовать 'URLQueryAllowedCharacterSet()', так как специальные символы произойти в 'query' части URL – vadian
@ vadian он не будет работать. в сервере я получил ответ, как myName's iPhone –
URLQueryAllowedCharacterSet() не работает –