使用 Google 时如何 return 撇号 翻译 API 为 Android?

How to return apostrophe when using Google Translate API for Android?

我有一个 Android 应用程序使用 Google 翻译 API。 一切都很好,包括当我尝试将包含撇号(如 "We've eaten")的短语翻译成西班牙语时。

但是,当我应该返回的翻译结果包含撇号时,就会出现问题。例如,当我将西班牙语短语 "A ver" 翻译成英语时,它 returns "Let&#39s see" 带有“;”在“9”之后。似乎每当我有一个应该 return 撇号的短语时,它 returns "'" with a ";"在“9”之后。 (不放置“;”在“9”之后,因为它被 Whosebug 转换为撇号)。

我想办法解决了。得到翻译结果后,我可以匹配“”'”+“;”的字符串,并将其替换为撇号。

但是,我不认为这是我应该处理它的方式。用户不太可能实际输入“'”作为翻译输入,但像这样硬编码手动转换似乎可能会导致问题。我很想听听您对此的看法。

请让我知道我应该如何 fix/approach 这个问题。

谢谢!

你是正确的硬编码不是解决方案, 但是您可以使用已经提供的 HTML 类 将此 HTML 实体转换回撇号。

Html.fromHtml((String) "Let's see").toString()

以上代码将转换任何有效的 HTML 实体。 希望这就是您要找的。

最佳解决方案是将 &format=text 添加到您的查询中。

谢谢纪尧姆。对于那些使用 php.

的人
   $translation = $translate->translate($stringToTranslate, ['target' => $target, 'format' => 'text']);

谢谢。对于那些使用 go 的人。 (api v3)

req := &translatepb.TranslateTextRequest{
    MimeType: "text/plain", // add this line to request
}