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