2016-11-14 81 views
1

我有一个使用Google Translate API的Android应用程序。 一切都很好,包括当我尝试将包括撇号(如“我们吃过”)的短语翻译成西班牙语时。如何在使用谷歌翻译API for Android时返回撇号?

但是,当翻译结果I应该回来时包含撇号时会出现问题。例如,当我将西班牙语短语“A ver”翻译成英文时,它会返回“Let &#39s”并带有“;”在“9”之后。这似乎是每当我有一个应该返回撇号的短语时,它会返回“&#39”,并带有“;”在“9”之后。 (不要在“9”之后放置“;”,因为它通过计算器转换为撇号)。

我可以想办法解决它。当我得到翻译结果后,我可以匹配“”&#39“+”;“的字符串,并用撇号替换。

但是,我不认为这是我应该接近它的方式。用户实际上不会输入“&#39”作为翻译输入,但是像这样的手动转换的硬编码似乎可能会导致问题的发生。我很乐意听到您对此的看法。

请让我知道我应该怎么解决/处理这个问题。

谢谢!

回答

2

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

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

上面的代码将转换任何有效的HTML实体。 我希望这是你在找什么。

+0

非常感谢Nakul!一切似乎都很好。但是,我不明白为什么这是必需的。我解析一个JSON对象,这是否意味着它是一个HTML实体,或者它是一个HTML实体,因为我从API获取JSON对象?如果是这样,我是否需要这样做,如果我从任何API检索信息?再次感谢!希望完全理解这个推理,以避免由于实现这个而导致间接错误。 –

+1

@CharlesLi我认为,我依赖于您使用的API,因为Google Translate API也可以被网站使用,这就是它对HTML友好的原因。那就是我所想的。 – Nakul