如何将'\'更改为'/'

Dav*_*ave 0 javascript c# browser url

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

网页中的网址为

 'http://localhost:57602/obitm.aspx?url=deaths%08akerd.htm' 
Run Code Online (Sandbox Code Playgroud)

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

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

我尝试使用javascript更改查询值

   thisurl = url.replace("\\", "/") 
Run Code Online (Sandbox Code Playgroud)

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

我没有在我的C#程序中尝试任何转换.那么我如何以编程方式将'\'更改为'/'?我不知道为什么会这样,而且非常令人困惑.任何帮助表示赞赏.

Cod*_*ely 5

只需将\n转换为URL字符串中的\就不会对你有效,因为在这种情况下,"\ b"将被转换为退格字符,该字符被编码到%08中 - 这是相当于ASCII的ASCII值的十六进制值.退格字符.

要解决这一问题,您可以将"%08"转换为字符串"/ B",但是对于各种字符有很多HTML代码,这些代码对您来说不会有效或有趣.

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

您也可以在发送之前对路径进行HTMLEncode,以便字符串成为

http://localhost:57602/obitm.aspx?url=deaths%92Bakerd.htm' 
Run Code Online (Sandbox Code Playgroud)