网上一大堆GET的教程,GET有字符串长度限制。不能适应目前的应用。
自己抓数据,写了如下代码。 public static string PostData(string pInfo, string posturl)
{
WebClient wc = new WebClient();
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] postData = Encoding.UTF8.GetBytes(pInfo);
byte[] responseData = wc.UploadData(posturl, "POST", postData);
return Encoding.UTF8.GetString(responseData);
}调用方法为:
PostData("client=t&text="+System.Web.HttpUtility.UrlEncode("好天气",Encoding.UTF8)+"&hl=zh-CN&sl=zh-CN&tl=de&multires=1&otf=2&pc=1&ssel=0&tsel=0", "http://translate.google.cn/translate_a/t");
//中文转成德文返回的内容为:[[["STEVEN durch��http","好天�","","Li��n ji��~o p��n"]],,"zh-CN",,[["STEVEN",[4],1,0,1000,0,1,0],["durch",[5],1,0,511,1,2,0],["��",[6],1,0,1000,2,3,0],["http",[7],1,0,1000,3,4,0]],[["STEVEN",4,[["STEVEN",1000,1,0]],[[0,6]],"STEVEN by �� http"],["by",5,[["durch",511,1,0],["von",488,1,0],["mit",0,1,0],["vom",0,1,0],["nach",0,1,0]],[[7,9]],""],["��",6,[["��",1000,1,0]],[[10,11]],""],["http",7,[["http",1000,1,0]],[[12,16]],""]],,,,89]
利用谷歌手动翻译的结果为:Wetter,感觉返回值不对。。哪也没看到Wetter这几个字母。
求教大牛,问题出在哪了。转码?怎么转才能正常显示
或者有没有相关的例程,感激不尽~
自己抓数据,写了如下代码。 public static string PostData(string pInfo, string posturl)
{
WebClient wc = new WebClient();
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] postData = Encoding.UTF8.GetBytes(pInfo);
byte[] responseData = wc.UploadData(posturl, "POST", postData);
return Encoding.UTF8.GetString(responseData);
}调用方法为:
PostData("client=t&text="+System.Web.HttpUtility.UrlEncode("好天气",Encoding.UTF8)+"&hl=zh-CN&sl=zh-CN&tl=de&multires=1&otf=2&pc=1&ssel=0&tsel=0", "http://translate.google.cn/translate_a/t");
//中文转成德文返回的内容为:[[["STEVEN durch��http","好天�","","Li��n ji��~o p��n"]],,"zh-CN",,[["STEVEN",[4],1,0,1000,0,1,0],["durch",[5],1,0,511,1,2,0],["��",[6],1,0,1000,2,3,0],["http",[7],1,0,1000,3,4,0]],[["STEVEN",4,[["STEVEN",1000,1,0]],[[0,6]],"STEVEN by �� http"],["by",5,[["durch",511,1,0],["von",488,1,0],["mit",0,1,0],["vom",0,1,0],["nach",0,1,0]],[[7,9]],""],["��",6,[["��",1000,1,0]],[[10,11]],""],["http",7,[["http",1000,1,0]],[[12,16]],""]],,,,89]
利用谷歌手动翻译的结果为:Wetter,感觉返回值不对。。哪也没看到Wetter这几个字母。
求教大牛,问题出在哪了。转码?怎么转才能正常显示
或者有没有相关的例程,感激不尽~
private string Google_T(string texts, string languages)
{
string payload = "&text=" + texts + "&langpair=" + languages;
WebRequest req = HttpWebRequest.Create(@"http://translate.google.com/translate_t?hl=zh-CN&ie=utf8"); req.Credentials = CredentialCache.DefaultNetworkCredentials;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.Timeout = 50000;
req.ContentLength = payload.Length;
Encoding encoding = Encoding.GetEncoding("UTF-8");
Byte[] bytes = encoding.GetBytes(payload);
req.ContentLength = bytes.Length;
Stream newStream = null; newStream = req.GetRequestStream(); newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse(); if (res.StatusDescription.ToLower() != "ok")
{
Console.WriteLine("无法连接!");
} Stream dataStream = res.GetResponseStream();
StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding(res.CharacterSet)); string responseFromServer = null;
responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
res.Close();
return responseFromServer;
}
调用:string ss = Google_T("好天气", "zh|de");
结果是:Wetter
我怎么返回的是一个HTML页面。。难道还要截取?
处理了,改了下代码。返回[[["Sch\u00F6nes Wetter","天气不错","","Tiānqì bùcuò"]],,"zh-CN",,[["Sch\u00F6nes Wetter",[4],1,0,999,0,2,0]],[["Nice weather",4,[["Sch\u00F6nes Wetter",999,1,0],["Sch\u00F6nem Wetter",0,1,0],["Sch\u00F6nwetter",0,1,0],["Sch\u00F6ne Wetter",0,1,0],["Sch\u00F6nen Wetter",0,1,0]],[[0,12]],"Nice weather"]],,,,8]这个是JSON吧?
我也这么看,json 应该是 {["a":1]}
这样子的。。GOOGLE真纠结。
<div id="google_translate_element" style="display:block"></div><script>
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: "af"}, "google_translate_element");
};</script>
<script src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>