iphone - 从 Google 翻译 API 获取响应时编码错误?

标签 iphone internationalization

我正在使用谷歌的翻译 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/

相关文章:

iphone - 无法使用 __bridge 将 CFStringRef 转换为 NSString

iphone - 关于对象方法调用的通知

ios - 在 UITableView 上添加 subview

ruby-on-rails - 键被覆盖时的 I18n 警告

ios - 用于多个/关系下拉选择器的 Swift iOS 解决方案

ios - 应用程序在 iOS 中将帐户 A 移动到 B 后可能丢失钥匙串(keychain)访问问题

ruby-on-rails - 是否可以同时使用 2 个 I18n 后端并仅使用第二个作为后备?

java - 如何将参数和资源包从主报表传递到子报表

internationalization - 如何创建多语言调查

javascript - 将语言作为动态属性从父组件传递给 React 中的所有后代