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

2023-07-15php开发问题
0

本文介绍了在 Windows 上列出包含 Unicode 字符的目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

I am using Windows 2003 to write some PHP code. I use XAMPP Portable (copy to D:). The problem:

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

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

When I call the script (with browser), I didn't see any directories (within D:ebooks) containing a Unicode character (I tested with Vietnamese, Japanese, Chinese, Czech).

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

But if I remove is_dir("$path/$file"), the directories display with many strange characters and many ??? characters.

我该如何解决问题?

推荐答案

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

Unfortunately, there are a lot of bugs related to PHP access to a windows filesystem. While Windows does store the filenames as UTF-16, PHP's internals use the much older ANSI api's. So it's best to only do stuff with filenames that are in the ascii range, or switch to a different operating system.

这篇关于在 Windows 上列出包含 Unicode 字符的目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17