2016-11-14 13 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