4

我正在用 C# 编写一个应用程序,它需要在 URL 和/或文件名中查找占位符,并替换为一个值,就像这样:C:\files\file{number}=>C:\files\file1不幸的是,对于该示例,文件名和 URL 中允许使用花括号。

谁能建议一些我可以用来表示文件和 URL 中的占位符的字符?谢谢!

4

1 回答 1

6

当您尝试使用它们时,Windows 会非常有用地告诉您文件名中不允许使用哪些字符:

文件名不能包含以下任何字符:
\ / : * ? " < > |

有关更多信息,请参阅此支持文章,包括允许的字符列表。

对命名文件、文件夹或快捷方式有效的字符包括字母 (AZ) 和数字 (0-9) 的任意组合,以及以下特殊字符:

^ 重音抑扬符(插入符号)
& & 符号
' 撇号(单引号)
@在标志
{ 左大括号
右括号
[ 支架开口
] 括号关闭
, 逗号
$美元符号
= 等号
!感叹号
- 连字符
# 数字符号
( 括号开头
) 括号结束
% 百分
. 时期
+ 加
~ 波浪号
_ 下划线

至于 URL,请参阅RFC 1738的第 2.2 节,了解允许的字符:

因此,只有字母数字、特殊字符“$-_.+!*'()”和用于其保留目的的保留字符可以在 URL 中未编码地使用。

...也很有趣,来自同一部分:

由于多种原因,字符可能不安全。空格字符是不安全的,因为当 URL 被转录或排版或接受文字处理程序的处理时,重要的空格可能会消失,并且可能会引入无关紧要的空格。字符“<”和“>”是不安全的,因为它们被用作自由文本中 URL 的分隔符;引号 (""") 在某些系统中用于分隔 URL。字符 "#" 是不安全的,应始终进行编码,因为它在万维网和其他系统中用于将 URL 与片段/锚定分隔开可能跟随它的标识符。字符“%”是不安全的,因为它用于其他字符的编码。其他字符是不安全的,因为已知网关和其他传输代理有时会修改这些字符。这些字符是“{”、“}”、“|”、“\”、“^”、“~”、“[”、“]”和“`”。

所有不安全的字符必须始终在 URL 中进行编码。

看起来双引号和尖括号字符 ( "<>) 是不错的选择。

于 2010-09-12T20:25:52.063 回答