【问题标题】:Strategies For Naming Files For Download Via A Browser命名文件以通过浏览器下载的策略
【发布时间】:2013-08-08 10:03:30
【问题描述】:
我在一个有大量 (PDF) 下载的网站上工作。我需要想出一个命名这些文件的策略。
以下是我的主要标准:
- 文件名必须在所有操作系统上都是合法的。
- 文件名必须是 URL 安全的。
- 文件名需要尽可能可读。
我已经阅读了很多关于这个主题的文章,并阅读了许多关于哪些角色可以使用和不能使用以及哪些策略最好的相互矛盾的意见。
什么是命名文件的最佳规则集,以便它们满足我上面的三个标准。
我正在使用 Rails 3 进行记录。
【问题讨论】:
标签:
file
download
naming-conventions
filenames
【解决方案1】:
我相信几乎任何 ASCII 字符都可以在 URL 中转义(即%20 是一个空格)。
Windows 中不允许使用的字符是 \/:*?"<>|(根据 Windows),并且您不能在同一目录中拥有具有相同名称但在不同情况下的文件(即 FILE.txt 和 file.txt 归类为相同姓名)。 Linux 和 Mac 相当允许。 所有操作系统还是仅仅那些?还有不少鲜为人知的操作系统,但它们通常不用于通用用途。
所以从技术上讲,您可以将其限制为从空格 (0x20) 到 the ASCII table 中的 ~ (0x7E):(Windows 不允许使用的除外)
但就可读性而言,如果您不想转义 URL,将其限制为 0-9、A-Z 和 a-z 以及某种分隔符(如 _)可能是最简单的。
我找到了this table,它应该可以让您很好地了解 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