Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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

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
Windows &引用;“安全”;文件命名_Windows_File_Character_Ascii_Naming - Fatal编程技术网

Windows &引用;“安全”;文件命名

Windows &引用;“安全”;文件命名,windows,file,character,ascii,naming,Windows,File,Character,Ascii,Naming,在Windows、Mac OS、Linux等系统中是否会遇到任何“不安全”的文件名 例如: 新视频2012外部房间 GED实践表 RgRrE re-\u d Da- 我听说,即使使用空格、下划线、大写字母和破折号命名文件,也可能会有潜在的问题,即使Windows没有将它们包括在禁用字符列表中。这是真的吗?我模模糊糊地记得看到过一些不区分大小写字符的程序,我知道HTML URL将不安全的ASCII字符编码为%(例如空格)。这在很大程度上取决于使用上下文。某些非禁止字符可能会导致某些程序出现问题

在Windows、Mac OS、Linux等系统中是否会遇到任何“不安全”的文件名

例如:

  • 新视频2012外部房间
  • GED实践表
  • RgRrE re-\u d Da-

我听说,即使使用空格、下划线、大写字母和破折号命名文件,也可能会有潜在的问题,即使Windows没有将它们包括在禁用字符列表中。这是真的吗?我模模糊糊地记得看到过一些不区分大小写字符的程序,我知道HTML URL将不安全的ASCII字符编码为
%
(例如空格)。

这在很大程度上取决于使用上下文。某些非禁止字符可能会导致某些程序出现问题,尽管绝大多数使用标准系统API的应用程序不会遇到任何问题

某些程序(尤其是命令行工具)可能对文件名中是否存在空格很敏感。其他人可能只在内部使用ASCII,因此无法处理包含基本ASCII以外字符的文件名。(大多数现代操作系统大体上都接受文件名中几乎任何Unicode字符)

某些工具可能需要转义某些字符(例如批处理脚本中的
%
),而其他工具可能不喜欢在文件名中加引号

最后,关于大写/小写的注意事项:大多数Windows文件系统都保留大小写,但不区分大小写,因此大写/小写的差异通常无关紧要

但是,请注意,在几乎所有情况下,即使需要一些变通方法才能使文件正常工作,这些文件仍然可以使用。

类Unix(包括Linux和Mac OS)和Windows都应该没有下划线问题。空格通常也应该是好的,但您偶尔会发现无法处理空格的错误代码

对于Windows来说,大写字母并不是问题。这是因为Windows文件系统不区分大小写,所以在某些情况下,当进行互操作时(例如,与区分大小写的git repo进行互操作),您可能会遇到问题(例如,repo最终会出现大小写不同的副本)


我不确定
-
。避免使用它的一个原因是
-
对于许多命令行程序(例如
rm-r
)具有特殊意义。因此,您必须使用恼人的语法,如
--r
。我通常也会避免使用像%这样的外来名称。

您是只对Windows中的“不安全”名称感兴趣,还是对问题开头列出的所有操作系统感兴趣?不同的操作系统对合法文件名有不同的规则。@rufai所有的操作系统。