列出Windows上包含Unicode字符的目录

Qua*_*Rom 4 php windows directory unicode

我正在使用Windows 2003编写一些PHP代码.我使用XAMPP Portable(复制到D :).问题:

$path = 'D:\ebooks';
$all_file = scandir($path);
foreach ($all_file as $file) {
  if (is_dir("$path/$file") && $file != '.' && $file != '..') {
    echo $file . "<br />\n";
  }
}
Run Code Online (Sandbox Code Playgroud)

当我调用脚本(使用浏览器)时,我没有看到任何包含Unicode字符的目录(在D:\ ebooks中)(我用越南语,日语,中文,捷克语测试).

但如果我删除is_dir("$path/$file"),目录显示许多奇怪的字符和许多???字符.

我该如何解决这个问题?

Eve*_*ert 6

不幸的是,有很多与PHP访问Windows文件系统相关的错误.虽然Windows确实将文件名存储为UTF-16,但PHP的内部使用了更旧的ANSI api.因此,最好只处理ascii范围内的文件名,或切换到不同的操作系统.

  • +1'切换到不同的操作系统':-) (2认同)