【问题标题】:What are the best characters to use for placeholders in file names (on Windows) AND URLs?文件名(在 Windows 上)和 URL 中用作占位符的最佳字符是什么?
【发布时间】:2011-04-11 10:05:23
【问题描述】:

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

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

【问题讨论】:

  • 其他操作系统需要注意吗?

标签: c# url filenames placeholder


【解决方案1】:

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

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

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

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

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

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

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

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

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

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

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

【讨论】:

  • 感谢您的回复!但是,我需要在文件名和 URL 中无效的字符。
  • 谢谢,看来双引号可以用了。
猜你喜欢
  • 2016-07-21
  • 2013-09-04
  • 2013-10-11
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 2017-04-28
  • 2018-02-07
相关资源
最近更新 更多