我正在使用谷歌的翻译 API 来翻译 iPhone SDK 中的一些文本。我使用的网址是http://ajax.googleapis.com/ajax/services/language/translate?v=1.0
一切正常,除了在某些语言中,例如波兰语,返回的字符串有时会包含一些奇怪的东西,例如\u0026 作为字符串的一部分。它会显示为“你好,你好吗”。为什么是这样?我获取结果的方式如下:
NSData *returnData = [NSURLConnection sendSynchronousRequest: req returningResponse: response error: error];
NSString *new = [[NSString alloc] initWithData:responseData encoding: NSUTF8StringEncoding];
编码是否错误?这就是新字符串看起来不正确的原因吗?我在谷歌翻译网页中尝试了相同的文本,并且它被正确翻译。
更新
如果您只是转到此 URL ,您将看到特殊字符。如何在我的应用程序中正确表示这些字符?使用上面的两行代码将无法正确编码。
最佳答案
该示例看起来正确:
\u0026quot;liberation\u0026quot; and \u0026quot;exit application\u0026quot;
我猜是jsonEncode(htmlEncode(“解放”和“退出应用程序”))
如果你有一个合适的 json 库,那么translatedText应该是:..."liberation"和“退出应用程序”...
,然后您只需要通过 html 解码器传递它即可。
\uXXXX
转义只是 unicode 十六进制转义,应该由 json 解析器处理。
关于iphone - 从 Google 翻译 API 获取响应时编码错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1225320/