首页 > 解决方案 > Yii2 小部件文件输入 utf-8 字符集问题

问题描述

我想上传一个带有 utf-8 字符的文件名,如希腊语、德语等。文件大小和类型都成功上传,不幸的是,它的文件名被奇怪的字符替换。但是,当文件名使用英文字符时,完全没有问题。

知道关于这个特定Yii2 小部件插件的文件名的 utf-8 字符可能有什么问题吗?

我为您提供为 utf-8 字符生成的文件名

在此处输入图像描述

以及通过 _slugDefault 生成文件名的函数源代码(为没有特殊字符添加了额外的行)。

在此处输入图像描述

问候

标签: file-upload

解决方案


我发现它实际上取决于服务器操作系统文件系统语言设置,而不是小部件本身。所以我在我的控制器中使用了以下 php 函数:

$file_name=iconv('UTF-8', 'language//TRANSLIT',$model->field);

$file->saveAs('files/'.$file_name);

非常感谢,我确实很高兴自己解决它!


推荐阅读