我需要使用 PHP 将非拉丁文件名的文件保存在文件系统上。
我想让这个工作跨平台。我如何知道可以使用什么编码来写入文件?我知道许多现代文件系统都是基于 UTF-8 的(这是正确的吗?),但我怀疑 Windows XP 是基于 UTF-8 的。
那么,是否有一套稳健的检测机制呢?
不是您问题的答案,但如果您不需要在文件系统级别执行大量操作(例如搜索、排序...),那么对于中概述的问题有一个很好的跨平台解决方法这个问题: URLEncode()
ing 文件名。
Hörensägen.txt
变成
H%c3%b6rens%c3%a4gen.txt
它应该可以在任何文件系统中安全使用,并且能够映射任何 UTF-8 字符。
我发现这比尝试“本地”处理主机操作系统的功能要好得多,后者肯定会很复杂且容易出错(除了操作系统差异之外,我确信各种文件系统格式 - FAT16、FAT32、NTFS 、extFS 版本 1/2/3.... 有自己的一套规则需要注意。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)