如何将“”更改为“/”

本文关键字: | 更新日期: 2023-09-27 18:34:14

我的 Web 程序在尝试访问目录名和文件名之间有反斜杠的 C# 程序后面的代码中的文件时出错。 该文件的地址进入我的网页,查询值为"deaths''bakerd.htm"。 但是,浏览器将其转换为"deaths%08akerd.htm"。

网页中的网址显示

 'http://localhost:57602/obitm.aspx?url=deaths%08akerd.htm' 

并说找不到网页,但网页 obitm.aspx 确实存在,为什么会说它没有呢?

如果我在 Windows 资源管理器中手动将查询值的值更改为"deaths/bakerd.htm",则在浏览器中作为查询值进入时不会进行任何转换,并且我能够在 C# 程序中访问该文件。

我尝试使用

   thisurl = url.replace("''", "/") 

但这并没有改变任何事情。

我还没有在我的 C# 程序中尝试过任何转换。 那么如何以编程方式将"''"更改为"/"呢? 我不知道为什么会发生这种情况,而且非常令人困惑。 任何帮助,不胜感激。

如何将“”更改为“/”

只是在 URL 字符串中将 '' 转换为/对您不起作用,因为在这种情况下,"''b"将转换为退格字符,该字符被编码为 %08 - 这是退格字符的 ASCII 等效值的十六进制值。

要解决这种情况,您可以将"%08"转换为字符串"/B",但是各种字符有很多HTML代码,尝试这些代码既没有效率,也没有乐趣。

您从哪里获得包含文件名名称的原始字符串?如果这是您可以控制的内容,请在读取文件的路径/名称时以及在将 URL 传递给 Web App 之前将"''"转换为"/"。

您还可以在发送路径之前对路径进行 HTML 编码,以便字符串变为

http://localhost:57602/obitm.aspx?url=deaths%92Bakerd.htm' 

尝试使用逐字字符串,以 @ 符号为前缀

string url = @"http://localhost:57602/obitm.aspx?url=deaths'bakerd.htm".Replace("''","/").ToString();

尝试thisurl = url.Replace("''", "/"); 就像在javascript中一样。

要解析查询字符串参数,您可以使用:

NameValueCollection qscoll = HttpUtility.ParseQueryString(querystring);

这里我们 MSDN 帮助

或者您可以:

HttpUtility.UrlEncode(Request.QueryString["url"]);
相关文章:
  • 没有找到相关文章