我想使用 PHP 的 file_put_contents() 函数将一些数据保存在文件名中包含 unicode 字符的文件中(如中文、西里尔文、阿拉伯文......)。我不想用 urlencode() 之类的东西单独对它们进行编码,因为如果文件名仅包含非拉丁字符,人类将无法读取它们。3 个最大的操作系统 Windows、MacOS / OS X 和 Linux 在文件名中支持 UTF-8 或 UTF-16 字符,并且可以毫无问题地显示它们,但似乎并不像调用这样的东西那么容易:
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "こんにちは.txt", "");
在 Windows 7(德语本地化)上,文件存储为:
ã“ã‚“ã«ã¡ã¯.txt
PHP 文件本身以 UTF-8 编码保存。在这3个系统上是否有统一的方法来保存文件名中带有unicode的文件?