使用UTF-8特殊字符处理PHP文件

huu*_*uer 5 php

似乎PHP中的文件处理不适用于某些字符(例如€)编码的UTF-8,如果路径是硬编码的并且php文件保存为UTF-8.

是否可以使它适用于所有(或大多数西方角色)?是否有可能的库?因为我找不到任何东西.

例如äöü&()éèàâêûô@$+ç%&=,Windows中名为!£_; {[]}〜'¢§§°#@ | ...€ 的文件夹将无法与is_dir()一起使用.

编辑:解决方案

好的,我找到了解决方案.我还没有完全测试它,我不确定它是否是万无一失的我不知道这是否是最好的做法,但将字符串编码回ANSI似乎可以解决问题(至少对于我发布的字符串) ).

$string = iconv(mb_detect_encoding($string, "auto"), 'Windows-1252', $string);
Run Code Online (Sandbox Code Playgroud)

我想这应该适用于大多数西方Windows计算机的默认设置.

djn*_*djn -1

我也拒绝使用这样的文件夹!:-)
开个玩笑,您可能会尝试将文件保存为 UTF-16,因为这应该是 Windows 内部使用的编码。