谷歌翻译API与Android应用程序

时间:2015-11-05 06:55:03

标签: android google-translate

我创建了一个Android应用程序,我正在使用Google Translate Rest服务。

我使用此网址发送请求以翻译源文本。

"https://www.googleapis.com/language/translate/v2?key=" + apiKey + "&target=en&q=" + text"

如您所见,未设置源语言以使服务能够检测 给定文本的语言。

当我用希伯来语写东西时,我得到的结果是问号。

例如,如果我输入“שלוםעולם”,需要用英文翻译成“hello world”, 我得到了结果“???? ????”。

我尝试过其他语言,如俄语或西班牙语。它适用于西班牙语,但是 用俄语,它就像希伯来语一样。

API是否有任何错误或我做错了什么?

更新

  encoded = URLEncoder.encode(textToTranslate,"UTF-8");
  url = new URL("https://www.googleapis.com/language/translate/v2?key=" + apiKey + "&target=en&q=" + encoded);

谢谢, Elior

1 个答案:

答案 0 :(得分:1)

您需要在传递之前将文本编码为q参数。

例如字符串שלוםעולם

String original = "שלום עולם";
String encoded = null;
try {
    encoded = URLEncoder.encode(original, "UTF-8");
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

encoded变量的值为%D7%A9%D7%9C%D7%95%D7%9D+%D7%A2%D7%95%D7%9C%D7%9D,网址变为:

"https://www.googleapis.com/language/translate/v2?key=" + apiKey + "&target=en&q=%D7%A9%D7%9C%D7%95%D7%9D+%D7%A2%D7%95%D7%9C%D7%9D"