Подтвердить что ты не робот

Декодировать строку в Swift

Как я могу декодировать строку в swift? Строка теперь тестирует% 2Enl, но правильный формат - test.nl.

Теперь у меня есть это:

 let encodedData = encodedString.dataUsingEncoding(NSUTF16StringEncoding)!
 let attributedOptions = [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType]
 let attributedString = NSAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil, error: nil)!

 return attributedString.string     
4b9b3361

Ответ 1

Вы можете использовать stringByReplacingPercentEscapesUsingEncoding

var properString = s.stringByReplacingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!

Обновление для быстрого 3: Вместо этого используйте removingPercentEncoding.

Ответ 2

В Swift 3:

let encodedString = "test%2Enl"
let decodedString = encodedString.removingPercentEncoding!

Swift 3 удалил много "лишних" формулировок во многих API Apple.

В этом случае stringByRemovingPercentEncoding был упрощен для удаления PercentEncoding.

Ответ 3

Или вы можете использовать stringByRemovingPercentEncoding?

Из документов:

Возвращает новую строку, полученную из приемника, заменяя все процентные кодированные последовательности соответствующими символами UTF-8.

let encodedString = "test%2Enl"
let decodedString = encodedString.stringByRemovingPercentEncoding!
println(decodedString)

Это напечатает test.nl

Ответ 4

Для этого вы можете использовать SwiftString (https://github.com/amayne/SwiftString).

"test%2Enl".decodeHTML() // "test.nl"

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я написал это расширение