从google translate转换c#中的字符串

从google translate转换c#中的字符串,c#,string,utf-8,google-translate,C#,String,Utf 8,Google Translate,我正在创建一个小词典,可以选择使用谷歌翻译。问题是:当我收到谷歌的回复并在文本框中显示时,我看到一些奇怪的符号。 以下是“询问”谷歌的方法代码: 因此,我正在将英语(en)翻译成保加利亚语(bg),并使用UTF8编码webClient,因此我认为在将其放入tbOutputWord文本框之前,调用方代码中缺少解析resultText的某些内容。我知道这段代码是有效的,因为如果我选择从英语翻译成法语(例如),它会显示正确的结果。不知何故,谷歌不尊重ie=UTF8查询参数。我们需要在请求中添加一些标题

我正在创建一个小词典,可以选择使用谷歌翻译。问题是:当我收到谷歌的回复并在文本框中显示时,我看到一些奇怪的符号。 以下是“询问”谷歌的方法代码:


因此,我正在将英语(en)翻译成保加利亚语(bg),并使用UTF8编码webClient,因此我认为在将其放入tbOutputWord文本框之前,调用方代码中缺少解析resultText的某些内容。我知道这段代码是有效的,因为如果我选择从英语翻译成法语(例如),它会显示正确的结果。

不知何故,谷歌不尊重
ie=UTF8
查询参数。我们需要在请求中添加一些标题,以便返回UTF8:

WebClient webClient = new WebClient();
webClient.Encoding = System.Text.Encoding.UTF8;
webClient.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0");
webClient.Headers.Add(HttpRequestHeader.AcceptCharset, "UTF-8");

您能否提供
http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}
这会产生那些“奇怪的符号”?如果inputText等于“hello”,结果应该是“你好”,而我看到的是“你好”,但是如果我用相同的输入将“en|bg”改为“en|fr”,结果是“你好”奇怪,但它是有效的!现在又出现了一个bug。当翻译这样的内容时:“嘿,你还好吗?”一切正常,但是如果你这样写输入:“嘿!你还好吗?”它只翻译“嘿!”。正如您在我的代码中所看到的,我(目前)直接从inputTextBox读取,并且没有格式,但看起来一次只翻译一句话。您应该1.)以不同的方式构造查询字符串。考虑到它是这样做的:但是,你当前的问题是另一个问题:你需要2个)一个用于解析结果的正则表达式。在
DownloadString
之后设置一个断点,您将看到您的翻译工作正常。你的解析是个问题。通过循环修复了它,因为我看到respond包含每个句子的标记。希望我有更多的+投票来给出这个。在其他许多“解决方案”失败的情况下取得成功。
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;
 }
WebClient webClient = new WebClient();
webClient.Encoding = System.Text.Encoding.UTF8;
webClient.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0");
webClient.Headers.Add(HttpRequestHeader.AcceptCharset, "UTF-8");