在文件名(在Windows上)和URL中使用占位符的最佳字符是什么?

时间:2010-09-12 20:20:30

标签: c# url filenames placeholder

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

有人可以建议一些我可以用来表示文件和网址占位符的字符吗?谢谢!

1 个答案:

答案 0 :(得分:6)

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

  

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

有关详细信息,请参阅this support article,包括允许的字符列表。

  

对命名有效的字符   文件,文件夹或快捷方式包括   任何字母组合(A-Z)和   数字(0-9),加上以下内容   特殊字符:

^   Accent circumflex (caret)
&   Ampersand
'   Apostrophe (single quotation mark)
@   At sign
{   Brace left
}   Brace right
[   Bracket opening
]   Bracket closing
,   Comma
$   Dollar sign
=   Equal sign
!   Exclamation point
-   Hyphen
#   Number sign
(   Parenthesis opening
)   Parenthesis closing
%   Percent
.   Period
+   Plus
~   Tilde
_   Underscore

对于网址,请参阅RFC 1738的第2.2节,了解允许的字符说明:

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

...同样感兴趣,来自同一部分:

  

字符对于数字可能不安全   原因。空间角色是   不安全,因为重要的空间可能   消失和微不足道的空间可能   在URL时引入   转录或排版或受到   文字处理的处理   程式。字符“<”和“>”   是不安全的,因为它们被用作   免费的URL周围的分隔符   文本;引号(“”“)用于表示   在某些系统中划分URL。该   字符“#”是不安全的,应该   总是被编码,因为它被使用   在万维网和其他系统中   从a分隔URL   可能的片段/锚标识符   跟着它。字符“%”是   不安全,因为它用于   其他角色的编码。其他   字符是不安全的,因为网关   和其他运输代理商是已知的   有时修改这些字符。   这些字符是“{”,“}”,“|”,   “\”,“^”,“〜”,“[”,“]”和“`”。

     

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

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