1

Web からファイルをダウンロードしてディスクに保存しています。これは簡単ですが、一部の Web ファイルには、ファイルをディスクに保存するときに使用できない文字が含まれています。最も顕著なのは、 script.js?something=somethingelseなどのファイルをダウンロードしたときです。

不正な文字の削除を扱うこの投稿は既に見つけましたが、それはしたくありません。ファイル名を何らかの形でエンコードしたいので、ディスクからファイルをロードするとデコードでき、元の名前が再び表示されます。

どの文字が許可されていないかを説明しているこのページを見つけましたが、言及しているように、それはちょっとあいまいです

ターゲット ファイル システムで許可されていないその他の文字。

これまでに思いついたのは、これを使用することHttpUtility.UrlEncodeであり、問​​題なく機能しているようです。私の恐れは、それが「正しく」なく、いくつかのシナリオで失敗することです。それで、これを達成する「正しい」方法を知っている人はいますか?

4

1 に答える 1

0

HttpUtility.UrlEncodeは、ほとんどの目的で十分です。System.Net.WebUtility.UrlEncodeUrlDecodeもあり、System.Web アセンブリへの参照を必要としないという利点がありますが (たとえば、コンパクト フレームワークの一部ではありません)、.Net 4.5 でのみ使用できます。

ただし、セキュリティが心配な場合は、Microsoft Web Protection Libraryの一部である AntiXSS を検討してください。JavaScript 文字列に含めるためのデータのエスケープや、ホワイトリストのサポートなど、さらに多くのケースをカバーしています。

于 2012-09-02T12:37:01.840 に答える