Кодирование URL-адресов в Swift: методы кодирования строк

Чтобы URL-кодировать строку в Swift, вы можете использовать несколько методов. Вот несколько подходов:

Метод 1: использование addingPercentEncoding(withAllowedCharacters:):

if let encodedString = originalString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
    print("Encoded String: \(encodedString)")
} else {
    print("Encoding failed.")
}

Метод 2: использование CFURLCreateStringByAddingPercentEscapes(доступно в старых версиях Swift):

let charactersToEscape = "!*'();:@&=+$,/?%#[]"
let allowedCharacterSet = NSMutableCharacterSet.alphanumeric()
allowedCharacterSet.addCharacters(in: charactersToEscape)
if let encodedString = originalString.addingPercentEncoding(withAllowedCharacters: allowedCharacterSet as CharacterSet) {
    print("Encoded String: \(encodedString)")
} else {
    print("Encoding failed.")
}

Метод 3. Использование URLComponents:

if let url = URLComponents(string: originalString) {
    if let encodedString = url.percentEncodedQuery {
        print("Encoded String: \(encodedString)")
    } else {
        print("Encoding failed.")
    }
} else {
    print("Invalid URL.")
}