Yii2 FileHelper :: findFiles() - 非ASCII字符出错

时间:2016-01-27 13:58:21

标签: utf-8 character-encoding internationalization yii2 yii2-advanced-app

我正在开发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']])

1 个答案:

答案 0 :(得分:0)

好的,谢谢@ineersa试图提供帮助,我在同事的帮助下得到了答案。

解决方案是使用PHP函数 utf8_encode()

将findFiles()返回的文件名显式转换为UTF-8

http://php.net/manual/en/function.utf8-encode.php