在文件名(Windows系统)和URL中,使用哪些最佳字符作为占位符?

4

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

请问有没有人能建议一些可以用来表示文件和URL中占位符的字符?谢谢!


你需要关注其他操作系统吗? - Michael Petrotta
1个回答

6

当您尝试使用以下字符时,Windows会友好地告诉您文件名中不允许使用哪些字符:

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

请参阅this support article了解更多信息,包括允许使用的字符列表。

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

^   重音抑扬符(插入符)
&   和号
'   撇号(单引号)
@   at符号
{   左括号
}   右括号
[   左方括号
]   右方括号
,   逗号
$   美元符号
=   等于号
!   感叹号
-   连字符
#   井号
(   左圆括号
)   右圆括号
%   百分号
.   句点
+   加号
~   波浪号
_   下划线
关于URL,参见RFC 1738的2.2节,了解允许使用的字符描述:
只有字母数字、特殊字符"$-_.+!*'(),"和用于其保留目的的保留字符可以在URL中未编码地使用。
同样来自该节的其他信息也很有趣。
字符由于各种原因可能是不安全的。空格字符是不安全的,因为当URL被转录、排版或经过文字处理程序处理时,重要的空格可能会消失,而无关紧要的空格可能会被引入。"<"和">"字符是不安全的,因为它们在自由文本中用作URL周围的分隔符;在某些系统中,引号("")用于定界URL。字符"#"是不安全的,应始终进行编码,因为它用于在万维网和其他系统中将URL与可能跟随其后的片段/锚标识符分隔开来。字符"%"是不安全的,因为它用于对其他字符进行编码。其他字符也是不安全的,因为已知网关和其他传输代理有时会修改这些字符。这些字符包括"{", "}", "|", "\", "^", "~", "[", "]", and "`"。所有不安全的字符必须始终在URL内进行编码。

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


谢谢您的回复!我需要那些在文件名和 URL 中无效的字符。 - Chris Laplante
谢谢,看起来双引号会起作用。 - Chris Laplante

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接