Yii2 FileHelper::findFiles() - 非 ASCII 字符错误
Yii2 FileHelper::findFiles() - error with non-ASCII characters
我正在从 yii2-advanced-app 开发一个应用程序。
在控制器 (DocumentController) 中,我使用 FileHelper::findFiles().
读出目录中的文件
它工作正常,但如果我的文件名包含非 ASCII 字符(如德语变音符号 äöü),我只会在返回的文件路径中看到一个问号。
我该如何解决这个问题?我找不到合适的答案。
作为 Web 服务器,我在 Windows Server 2008 R2 Enterprise 上使用 IIS 7。
DocumentController.php
use yii\helpers\FileHelper;
$data = FileHelper::findFiles($folderPath,['except'=>['*.db']]);
var_dump($data);
结果为:
array(1) { [0]=> string(84) "C:\Websites\dev.point-s.de\space/space_attachments/10082\Aushang 201501 Gr�ndung.pdf" }
输出应该是用下面的代码完成的,但我认为问题出在文件的读取上。
Html::a($model['name'], ['document/download', 'file' => $model['name']])
好的,感谢@ineersa 的帮助,我在同事的帮助下得到了答案。
解决方案是使用PHP函数utf8_encode()
将findFiles()返回的文件名显式转换为UTF-8
我正在从 yii2-advanced-app 开发一个应用程序。
在控制器 (DocumentController) 中,我使用 FileHelper::findFiles().
读出目录中的文件它工作正常,但如果我的文件名包含非 ASCII 字符(如德语变音符号 äöü),我只会在返回的文件路径中看到一个问号。
我该如何解决这个问题?我找不到合适的答案。
作为 Web 服务器,我在 Windows Server 2008 R2 Enterprise 上使用 IIS 7。
DocumentController.php
use yii\helpers\FileHelper;
$data = FileHelper::findFiles($folderPath,['except'=>['*.db']]);
var_dump($data);
结果为:
array(1) { [0]=> string(84) "C:\Websites\dev.point-s.de\space/space_attachments/10082\Aushang 201501 Gr�ndung.pdf" }
输出应该是用下面的代码完成的,但我认为问题出在文件的读取上。
Html::a($model['name'], ['document/download', 'file' => $model['name']])
好的,感谢@ineersa 的帮助,我在同事的帮助下得到了答案。
解决方案是使用PHP函数utf8_encode()