swift: JSON корректно не работает после смены языка устройства - PullRequest
0 голосов
/ 08 марта 2019

Я сделал JSON-запрос, чтобы получить предложения по поиску в Google на Google, если я передаю арабские буквы в качестве поискового ключевого слова, то это прекрасно работает, если язык устройства английский, но если я изменяю его на арабский, я получаю это сообщение:

Не удалось сериализовать JSON из-за ошибки: невозможно прочитать данные, поскольку они имеют неправильный формат.

Код:

        //Prepare Keyword string
    searchKeyword = (searchKeyword as NSString).replacingOccurrences(of: " ", with: "+")

    //Prepare url string
    var str: String = "http://suggestqueries.google.com/complete/search?ds=yt&client=firefox&hjson=t&q='\(searchKeyword)'"
    str = str.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!

    //Getting the data
    Alamofire.request(str).responseJSON { (response) in
        //If error
        if let error = response.error {
            print(error.localizedDescription)
        }
        //If successed
        if let jsonArray = response.result.value as? NSArray {
            //Use the data
        }
    }

Примечание: когда устройство имеет интерфейс на английском языке, я получил Content-Type = charset = ISO-8859-1 в описании ответа JSON, но когда устройство работает на арабском интерфейсе Content-Type = charset = windows-1256

1 Ответ

0 голосов
/ 10 марта 2019

Я добавил эту строку, и проблема решена !!

UserDefaults.standard.set(["ar", "en"], forKey: "AppleLanguages")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...