Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 命名通过浏览器下载的文件的策略_File_Download_Naming Conventions_Filenames - Fatal编程技术网

File 命名通过浏览器下载的文件的策略

File 命名通过浏览器下载的文件的策略,file,download,naming-conventions,filenames,File,Download,Naming Conventions,Filenames,我在一个有大量(PDF)下载的网站上工作。我需要想出一个命名这些文件的策略 因此,以下是我的主要标准: 文件名在所有操作系统上都必须合法 文件名必须是URL安全的 文件名需要尽可能可读 我已经读了很多关于这个主题的书,读了很多关于哪些角色可以使用,哪些角色不可以使用,哪些策略是最好的观点 命名文件的最佳规则集是什么,以使它们满足上述三个标准。 我使用Rails 3作为记录。我相信URL中几乎可以转义任何ASCII字符(即%20是一个空格) Windows中不允许使用的字符是:*?“|(根据Win

我在一个有大量(PDF)下载的网站上工作。我需要想出一个命名这些文件的策略

因此,以下是我的主要标准:

  • 文件名在所有操作系统上都必须合法
  • 文件名必须是URL安全的
  • 文件名需要尽可能可读
  • 我已经读了很多关于这个主题的书,读了很多关于哪些角色可以使用,哪些角色不可以使用,哪些策略是最好的观点

    命名文件的最佳规则集是什么,以使它们满足上述三个标准。


    我使用Rails 3作为记录。

    我相信URL中几乎可以转义任何ASCII字符(即
    %20
    是一个空格)

    Windows中不允许使用的字符是:*?“|(根据Windows),并且不能在同一目录中使用相同名称但在不同情况下不同的文件(即
    FILE.txt
    FILE.txt
    分类为相同名称).Linux和Mac是相当允许的。所有的操作系统还是仅此而已?也有不少鲜为人知的操作系统,但它们通常不是通用的

    因此,从技术上讲,您可以将其限制为从一个空格(0x20)到一个
    ~
    (0x7E)in:(Windows不允许的除外)

    但就可读性而言,如果您不想转义URL,则可能最容易将其限制为0-9、A-Z和A-Z,并且使用某种分隔符(如
    \uu
    )总是很好的

    我发现,这应该能让你很好地了解URL需要转义的内容:

    Char    Escape Code
    SPACE   %20
    <       %3C
    >       %3E
    #       %23
    %       %25
    {       %7B
    }       %7D
    |       %7C
    \       %5C
    ^       %5E
    ~       %7E
    [       %5B
    ]       %5D
    `       %60
    ;       %3B
    /       %2F
    ?       %3F
    :       %3A
    @       %40
    =       %3D
    &       %26
    $       %24
    
    Char转义码
    空间%20
    <%3C
    >%3E
    #       %23
    %       %25
    {%7B
    }%7D
    |%7C
    \%5C
    ^%5E
    ~%7E
    [%5B
    ]%5D
    `       %60
    ;%3B
    /%2F
    ?%3F
    :%3A
    @       %40
    =%3D
    &       %26
    $       %24