我正在用 C# 编写一个应用程序,它需要在 URL 和/或文件名中查找占位符,并替换为一个值,就像这样:C:\files\file{number}
=>C:\files\file1
不幸的是,对于该示例,文件名和 URL 中允许使用花括号。
谁能建议一些我可以用来表示文件和 URL 中的占位符的字符?谢谢!
我正在用 C# 编写一个应用程序,它需要在 URL 和/或文件名中查找占位符,并替换为一个值,就像这样:C:\files\file{number}
=>C:\files\file1
不幸的是,对于该示例,文件名和 URL 中允许使用花括号。
谁能建议一些我可以用来表示文件和 URL 中的占位符的字符?谢谢!
当您尝试使用它们时,Windows 会非常有用地告诉您文件名中不允许使用哪些字符:
文件名不能包含以下任何字符:
\ / : * ? " < > |
有关更多信息,请参阅此支持文章,包括允许的字符列表。
对命名文件、文件夹或快捷方式有效的字符包括字母 (AZ) 和数字 (0-9) 的任意组合,以及以下特殊字符:
^ 重音抑扬符(插入符号) & & 符号 ' 撇号(单引号) @在标志 { 左大括号 右括号 [ 支架开口 ] 括号关闭 , 逗号 $美元符号 = 等号 !感叹号 - 连字符 # 数字符号 ( 括号开头 ) 括号结束 % 百分 . 时期 + 加 ~ 波浪号 _ 下划线
至于 URL,请参阅RFC 1738的第 2.2 节,了解允许的字符:
因此,只有字母数字、特殊字符“$-_.+!*'()”和用于其保留目的的保留字符可以在 URL 中未编码地使用。
...也很有趣,来自同一部分:
由于多种原因,字符可能不安全。空格字符是不安全的,因为当 URL 被转录或排版或接受文字处理程序的处理时,重要的空格可能会消失,并且可能会引入无关紧要的空格。字符“<”和“>”是不安全的,因为它们被用作自由文本中 URL 的分隔符;引号 (""") 在某些系统中用于分隔 URL。字符 "#" 是不安全的,应始终进行编码,因为它在万维网和其他系统中用于将 URL 与片段/锚定分隔开可能跟随它的标识符。字符“%”是不安全的,因为它用于其他字符的编码。其他字符是不安全的,因为已知网关和其他传输代理有时会修改这些字符。这些字符是“{”、“}”、“|”、“\”、“^”、“~”、“[”、“]”和“`”。
所有不安全的字符必须始终在 URL 中进行编码。
看起来双引号和尖括号字符 ( "<>
) 是不错的选择。