0

我正在开发一个 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;
    } 
4

0 回答 0