如何转义多个 FS 上文件名中的无效字符
如何转义文件名中的无效字符?我之前问过一次这个问题并用解决方案写了一堂课。现在我想延长它。我的网站将能够检测用户使用的操作系统。因此,基于此,我要么 1) 希望根据用户所在的 FS/OS 进行转义,要么 2) 进行转义,以便它适用于所有文件系统。
哪些字符在 Windows 7 或 Linux 上有效(我不确定我当前的 Linux FS 设置为什么),在 XP 上无效,或者在 Windows 或 Mac 上有效但在 Linux 上无效?
How do i escape invalid characters in filenames? I ask this question once before and wrote up a class with the solution. Now i would like to extend it. My site will be able to detect what OS the user is on. So base on that i either 1) Want to escape based on the FS/OS the user is on or 2) Escape it so it works on all filesystems.
What characters may be valid on windows 7 or linux (i am unsure what my current linux FS is set to) and invalid on XP or valid on windows or mac and not on linux?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
目录的名称是否会显示给用户?如果是,它是否需要看起来像用户名(基于另一个问题中的信息)?如果没有,您可以将其拆分为字符数组,将每个字符的值转换为其十六进制表示形式,然后将它们组合在一起形成一个字符串。这应该适用于任何文件系统。
Will the name of the directory ever be displayed to a user and, if so, does it need to look like the user name (based on info in the other question)? If not, you could split it to a character array, convert the value of each character to its hexadecimal representation and put those together to a string. That should work on any file system.
解决方案
[A-Za-z._-]
并转义不属于该范围的字符solutions
[A-Za-z._-]
and escape characters that do not fall in the range