Skip to main content
 首页 » 编程设计

c#之URL解码困惑

2024年06月03日13落叶无声

我有一个引用以下网址的数据库:

http://en.wikipedia.org/wiki/Herbert_Gr%F6nemeyer

但是,这似乎是一个错误的 URLEncoding,导致 HttpUtility.UrlDecode (给我垃圾)和 Uri.UnescapeDataString (UriFormatException)都出现问题。我的浏览器将路径原样传递到维基百科(因此我假设 %F6 由浏览器编码),如下所示:

获取/wiki/Herbert_Gr%F6nemeyer HTTP/1.1

维基百科识别并 301 重定向到:

位置:http://en.wikipedia.org/wiki/Herbert_Gr%C3%B6nemeyer

这是怎么回事?维基百科有额外的专有编码吗?

编辑:我有维基百科的本地副本,我正在尝试与此网址交叉引用。文章按标题索引,在本例中为:“Herbert Grönemeyer”。任何人都可以建议我如何在代码中从“Herbert_Gr%F6nemeyer”转到“Herbert Grönemeyer”。显然下划线不是这里的问题。

请您参考如下方法:

%C3%B6 是 ö(o-umlaut)的正确 UTF-8 编码。我假设 %F6 是相同字符的某些本地编码的字节值的逐字节副本(例如,来自代码页 1252)。