来自iOS中Google翻译API的文本解码问题

时间:2019-05-16 09:17:36

标签: ios swift encoding urlencode google-translate

所以这是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 :(得分:0)

这是API参数的问题。我添加了这两个参数,一切正常。

ie=UTF-8
oe=UTF-8