C# 将字符串从ASP解码到ASP.Net时出现问题(国际字符)

C# 将字符串从ASP解码到ASP.Net时出现问题(国际字符),c#,character-encoding,C#,Character Encoding,我有一个来自ASP页面的字符串,我正在尝试对其进行URL解码并将其显示在ASP.Net页面中 string str=@“%A0%A01stk.++%D8repynt++%3Cbr%3E%A0%A01stk.+Slipsn%E5l++%3Cbr%3E%3Cp%3E+Total+pris%3A+300” 如果查看%D8,则在运行HttpUtility.UrlDecode时,应将其翻译为挪威字符Ø。但事实并非如此。根据我尝试的转换,它会变成不同的东西,但决不会是Ø%E5应该变成å 下面是我一直在尝试的

我有一个来自ASP页面的字符串,我正在尝试对其进行URL解码并将其显示在ASP.Net页面中

string str=@“%A0%A01stk.++%D8repynt++%3Cbr%3E%A0%A01stk.+Slipsn%E5l++%3Cbr%3E%3Cp%3E+Total+pris%3A+300”

如果查看
%D8
,则在运行
HttpUtility.UrlDecode
时,应将其翻译为挪威字符
Ø
。但事实并非如此。根据我尝试的转换,它会变成不同的东西,但决不会是
Ø
<代码>%E5
应该变成
å

下面是我一直在尝试的一些转换代码:

public static string Convert(string text)
{
    text = HttpUtility.UrlDecode(text);
    var isoEncoder = System.Text.Encoding.GetEncoding("ISO-8859-1");
    var utf8Encoder = new UTF8Encoding();

    byte[] txtBytes = isoEncoder.GetBytes(text);
    byte[] convertedBytes = System.Text.Encoding.Convert(isoEncoder, System.Text.Encoding.UTF8, txtBytes);

    return utf8Encoder.GetString(convertedBytes);
}
根据:
在Microsoft Windows上,使用“美国国际”键盘设置,按住Alt Gr键并按“L”即可键入。如果系统使用代码页1252作为系统默认值,则在数字键盘上键入0216或0248的同时按住[Alt]键,也可以在任何键盘设置下键入。(代码页1252是ISO 8859-1的超集,216和248是十六进制D8和F8的十进制等价物。)


这似乎表明输入字符串的格式正确(%D8=Ø)。

ASP.NET页面的格式是什么?服务器的响应是
内容类型:text/html;字符集=utf-8
。我还忘了提到我不能对web.config进行任何重大更改,因为它是许多页面的通用配置文件。ASP.NET页面的配置是什么?服务器的响应是
内容类型:text/html;字符集=utf-8
。我还忘了提到我不能对web.config进行任何重大更改,因为它是许多页面的通用配置文件。
        string str = @"%A0%A01stk.+%D8repynt+%3Cbr%3E%A0%A01stk.+Slipsn%E5l+%3Cbr%3E%3Cp%3E+Total+pris%3A+300";
        string decoded = System.Web.HttpUtility.UrlDecode(str, System.Text.Encoding.GetEncoding("ISO-8859-1"))