我正在开发一个C#应用程序,它将一个http请求发送到将挪威语转换为英语的语言翻译服务器,反之亦然。我回来的翻译结果表明某些挪威字符如“Ø”正在出现乱码。单步执行代码,我发现这个字符在HttpWebRequest类的URI成员中出现乱码,所以我明确指定了URI(而不仅仅依赖于HTTPWebRequest类来为我做这个)。但我的翻译结果仍然是乱码。我怀疑StreamReader现在是罪魁祸首,并且已经在挪威机器上尝试过UTF8,Unicode,ASCII编码,但无济于事。请指教。先感谢您。该功能的代码粘贴在下面。
其他细节:
输入内容示例:følger;
翻译结果示例:? 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;
}