代码之家  ›  专栏  ›  技术社区  ›  Chris Laplante

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

  •  4
  • Chris Laplante  · 技术社区  · 14 年前

    我正在用C语言编写一个应用程序,它需要在URL和/或文件名中找到占位符,并替换为一个值,如下所示: C:\files\file{number} C:\files\file1 不幸的是,在这个示例中,文件名和url中允许使用大括号。

    1 回复  |  直到 5 年前
        1
  •  6
  •   Michael Petrotta user3140870    14 年前

    当您尝试在文件名中的某个字符上使用时,Windows会很有帮助地告诉您文件名中不允许使用哪些字符:

    文件名不能包含以下任何字符:

    this support article 更多信息,包括 角色。

    文件、文件夹或快捷方式包括 字母(A-Z)和 特殊字符:

    ^   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 有关允许字符的说明:

    因此,只有字母数字 用于保留目的的保留字符可以在URL中未编码地使用。

    ……同样有趣的是,来自同一节:

    原因。空格字符是 不安全,因为重要的空间可能 在创建URL时引入 抄写、排版或接受 程序。字符“<”和“>” 因为它们被用作 字符“#”不安全,应该 总是被编码,因为它被使用 将URL与 可能的片段/锚点标识符 不安全,因为它用于 其他字符的编码。其他 还有其他的运输工具 有时修改这样的字符。 “\”、“^”、“~”、“[”、“]”和“`”。

    它看起来像双引号和尖括号字符( "<>