C# 外来字符;语言翻译代理应用程序
我正在开发一个C#应用程序,它向语言翻译服务器发送http请求,语言翻译服务器将挪威语转换为英语,反之亦然。我得到的翻译结果表明,像“Ø”这样的某些挪威字符被篡改了。在代码中,我发现这个字符在HttpWebRequest类的URI成员中被篡改了,所以我已经显式地指定了URI(而不是仅仅依靠HttpWebRequest类来完成)。但我的翻译结果仍然是乱七八糟的。我怀疑StreamReader现在是罪魁祸首,并在挪威的机器上尝试了UTF8、Unicode和ASCII编码,但没有成功。请告知。先谢谢你。函数的代码粘贴在下面 其他详情: 输入内容示例:følgerC# 外来字符;语言翻译代理应用程序,c#,C#,我正在开发一个C#应用程序,它向语言翻译服务器发送http请求,语言翻译服务器将挪威语转换为英语,反之亦然。我得到的翻译结果表明,像“Ø”这样的某些挪威字符被篡改了。在代码中,我发现这个字符在HttpWebRequest类的URI成员中被篡改了,所以我已经显式地指定了URI(而不是仅仅依靠HttpWebRequest类来完成)。但我的翻译结果仍然是乱七八糟的。我怀疑StreamReader现在是罪魁祸首,并在挪威的机器上尝试了UTF8、Unicode和ASCII编码,但没有成功。请告知。先谢谢你
翻译结果示例:?lger
输入和输出在unicode文本文件中
public string Translate(string requestquery)
{
string translatedresult = "";
Uri uri = new Uri(requestquery, true); //this appears to have solved the garbled URI
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string charSet = response.CharacterSet;
Stream ReceiveStream = response.GetResponseStream();
//I've tried all sorts of encoding here and even changing the machine locale
string contentEncoding = response.ContentEncoding;
StreamReader sr = new StreamReader(ReceiveStream, Encoding.UTF8, false);
translatedresult = sr.ReadToEnd();
sr.Close();
return translatedresult;
}
网页的编码是什么?您需要使用该编码读取其中的字符。感谢您的回复。输入是一个unicode文本文件。所以我在StreamReader中指定了编码,它产生了汉字。