【发布时间】:2015-02-25 03:42:54
【问题描述】:
我正在创建一个小字典,并带有使用谷歌翻译的附加选项。所以这就是问题所在:当我收到 Google 的回复并将其显示在文本框中时,我看到了某种奇怪的符号。 这是“询问”谷歌的方法的代码:
public string TranslateText(string inputText, string languagePair)
{
string url = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", inputText, languagePair);
WebClient webClient = new WebClient();
webClient.Encoding = System.Text.Encoding.UTF8;
// Get translated text
string result = webClient.DownloadString(url);
result = result.Substring(result.IndexOf("<span title=\"") + "<span title=\"".Length);
result = result.Substring(result.IndexOf(">") + 1);
result = result.Substring(0, result.IndexOf("</span>"));
return result.Trim();
}
..并像这样调用这个方法(点击翻译按钮后):
string resultText;
string inputText = tbInputWord.Text.ToString();
if (inputText != null && inputText.Trim() != "")
{
ExtendedGoogleTranslate urlTranslate = new ExtendedGoogleTranslate();
resultText = urlTranslate.TranslateText(inputText, "en|bg");
tbOutputWord.Text = resultText;
}
所以我正在从英语(en)翻译成保加利亚语(bg)并使用 UTF8 编码 webClient 所以我认为我在 调用者代码上遗漏了一些东西 以某种方式解析 resultText,然后将其放入 tbOutputWord 文本框。我知道这段代码有效,因为如果我选择从英语翻译成法语(例如),它会显示正确的结果。
【问题讨论】:
-
你能提供一个
http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}的示例请求,它会产生那些“奇怪的符号”吗? -
如果 inputText 等于 "hello" 结果应该是 "Здравейте" 而我看到的是 " ?????????" 但是如果我将 "en|bg" 更改为 "en|fr" 并使用相同的输入结果是“你好”
标签: c# string utf-8 google-translate