1

我正在从网上下载文件并将其保存在磁盘上。这很容易,但是某些 Web 文件中包含在将文件保存到磁盘时不允许使用的字符。最值得注意的是,当我下载诸如script.js?something=somethingelse之类的文件时

我已经找到处理删除非法字符的帖子,但我不想这样做。我想以某种方式对文件名进行编码,这样当我从磁盘加载文件时,我可以对其进行解码,并且我将再次获得原始名称。

我发现这个页面描述了哪些字符是不允许的,但它有点模糊,因为它提到

目标文件系统不允许的任何其他字符。

到目前为止我想出的是HttpUtility.UrlEncode用于此,它似乎工作正常。我担心它不“正确”,并且在某些情况下会失败。那么有谁知道实现这一目标的“正确”方式?

4

1 回答 1

0

HttpUtility.UrlEncode对于大多数用途来说已经足够好了。您还有System.Net.WebUtility.UrlEncodeUrlDecode,它们的优点是不需要引用 System.Web 程序集(例如,不是紧凑框架的一部分),但它仅在 .Net 4.5 中可用。

但是,如果您担心安全性,请考虑 AntiXSS,它是Microsoft Web Protection Library的一部分。如果涵盖更多情况,例如转义数据以包含在 javascript 字符串中,以及白名单支持。

于 2012-09-02T12:37:01.840 回答