当尝试访问 C# 程序背后的代码中的文件时,我的 Web 程序出现错误,该文件的目录名和文件名之间有反斜杠。该文件的地址进入我的网页,查询值为“deaths\bakerd.htm”。然而,浏览器将其转换为“deaths%08akerd.htm”。
网页中的 url 为
'http://localhost:57602/obitm.aspx?url=deaths%08akerd.htm'
并说找不到网页,但网页 obitm.aspx 确实存在,为什么会说不存在?
如果我手动将 Windows 资源管理器中的查询值更改为“deaths/bakerd.htm”,则在浏览器中作为查询值进入时不会执行任何转换,并且我能够访问以下位置的文件我的 C# 程序。
我尝试使用
更改 javascript 中的查询值 thisurl = url.replace("\\", "/")
但这并没有改变任何事情。
我还没有在我的 C# 程序中尝试过任何转换。那么如何以编程方式将“\”更改为“/”?我不知道为什么会发生这种情况并且非常令人困惑。如有任何帮助,我们将不胜感激。
最佳答案
仅将 URL 字符串中的\转换为/是行不通的,因为在这种情况下,“\b”将被转换为退格字符,该退格字符被编码为 %08 - 这是 ASCII 的十六进制值相当于退格字符。
要解决这一问题,您可以将“%08”转换为字符串“/B”,但有很多 HTML codes对于各种 Angular 色来说,尝试它不会有成效或有趣。
您从哪里获取包含文件名 name 的原始字符串? 如果您可以控制它,则在读取文件的路径/名称时以及将其通过 URL 传递到 Web 应用程序之前,将“\”转换为“/”。
您还可以在发送路径之前对路径进行 HTMLEncode,以便字符串变为
http://localhost:57602/obitm.aspx?url=deaths%92Bakerd.htm'
关于c# - 如何将 '\' 更改为 '/',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19217533/