Cyrillic symbols in URL

Swift 4
Using String Extension Create a swift file named String+Extension.swift and paste this code

import UIKit
extension String{
    var encodeUrl : String
    {
        return self.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!
    }
    var decodeUrl : String
    {
        return self.removingPercentEncoding!
    }
}

and Use it like so: (sample according to question):

"http://api.com/алматы/events".encodeUrl

Try this:

let encodedUrl = jsonUrl.stringByAddingPercentEncodingWithAllowedCharacters(URLQueryAllowedCharacterSet)

Something like this:

let apiHost = "http://api.com/"
let apiPath = "алматы/events"
let escapedPath = apiPath.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLHostAllowedCharacterSet())
let url = NSURL(string: "\(apiHost)\(escapedPath!)")

Obviously you should do something smarter than just force unwrap escapedPath.

Using the Wikipedia page for Swift as an example: https://ru.wikipedia.org/wiki/Swift_(язык_программирования)

Becomes:

https://ru.wikipedia.org/wiki/Swift_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

Which when pasted into the browser takes you to the right page (and most browsers will conveniently render the UFT-8 characters for you).

Tags:

Ios

Swift

Nsurl