Проблема декодирования текста из Google Translate API в iOS - PullRequest
0 голосов
/ 16 мая 2019

Так вот URL:

https://translate.googleapis.com/translate_a/single?client=gtx&sl=ar-SA&tl=en-US&dt=t&q=سلام

Ответ все нормально, когда нажимается из Браузер или Почтальон .Но когда я делаю это через код, при получении ответа появляются странные строки.

Я пытался Alamofire :

Alamofire.request(urlString, method: .get, parameters: nil,encoding: JSONEncoding.prettyPrinted, headers: ["Accept":"application/json;charset=UTF-8" ]).responseJSON { response in

            print(response)
}

Строка ответа выглядит примерно так:

"\\U0637\\U00b3\\U0638\\U201e\\U0637\\U00a7\\U0638\\U2026"

, а также эта странная арабская строка.

"ط ط ط \\\"\\\" ط ... ... ...\"

Я также попытался перейти по URL-адресу, например так:

String.init(data: Data.init(contentsOf: URL.init(string: "https://translate.googleapis.com/translate_a/single?client=gtx&sl=ar-SA&tl=en-US&dt=t&q=%E2%80%8F%D8%B3%D9%84%D8%A7%D9%85")!), encoding: .utf8)

Но результат тот же, некоторые странные арабские строки, которые отличаются при попадании из браузер или почтальон .

"ط ط ط \\\"\\\" ط ... ... ...\"

Я кодирую URL перед нажатием URL.Также пробовал разные кодировки на URL и строку.

1 Ответ

0 голосов
/ 16 мая 2019

Это была проблема с параметрами API. Я добавил эти 2 параметра, и все заработало.

ie=UTF-8
oe=UTF-8
...