来自 google 的文本解码问题将 API 翻译成 iOS
Text decoding issue from google translate API in iOS
所以这里是 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)
但结果是一样的,一些奇怪的阿拉伯字符串,从browser或postman点击时是不同的。
"ط ط ط \\"\\" ط ... ... ...\"
我在点击 URL 之前编码 URL。还在 url 和 string.
上尝试了不同的编码
这是 API 的参数问题。我添加了这两个参数,一切正常。
ie=UTF-8
oe=UTF-8
所以这里是 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)
但结果是一样的,一些奇怪的阿拉伯字符串,从browser或postman点击时是不同的。
"ط ط ط \\"\\" ط ... ... ...\"
我在点击 URL 之前编码 URL。还在 url 和 string.
上尝试了不同的编码这是 API 的参数问题。我添加了这两个参数,一切正常。
ie=UTF-8
oe=UTF-8