chrome下载文件时为什么把~替换成_?

名字带~的文件,用Chrome下载后~会变成_。如ab~c.doc,下载后会变成ab_c.doc。ie不会这样。
为什么要这样设计?
还有哪些字符会被替换?
有什么办法避免?
我在写一个批量下载文件的小程序,遇到这个问题很郁闷,请大佬帮忙。

没有想到你也遇到了,不过你不是最后一个,其他人也会遇到,这里讲解一下,希望对看到的人有帮助

在许多版本的Windows中,波浪号(~)用于文件名扩展和隐藏的保留内容——通常不用于一般用途,除非文件是在其他地方创建的(比如在Mac上)。

在早期的计算机时代,文件名不能有点、空格或很多其他字符,所以长名字用波浪号来节省内存。例如,如果你有my-awesome-picture.jpeg,那么它的短名称可能是MY-AWE~1.jpeg

Windows看到这些带有波浪号的文件名,并希望展开它们。在您的情况下,没有什么可扩展的,当计算机混淆时,有时会导致问题。

Chrome通过用下划线(_)替换波浪号来避免这个问题。这也有可能是由编码问题引起的(由两台来自不同国家或使用不同语言的计算机引起的——例如,拉丁语和伊比利亚西班牙语),但现在这种情况很少见。

可以在Mac上或通过命令行重命名文件,但我不建议这样做。