Yii2始终将标题设置为“带BOM的UTF-8”以保存文件

时间:2017-09-11 10:14:07

标签: php utf-8 character-encoding yii2

在Yii2中我有控制器将一些文本从数据库保存到.csv文件。它包含俄语(西里尔语)。问题是当我在Excel中打开文件时,它有不好的字符集:грузовÐ

对于Mac OS和Windows用户,Excel charset结果是一样的。在记事本中打开是好的。但记事本称其编码为“带BOM的UTF-8”。如果我从记事本保存到“UTF-8”,Excel会读取好的.csv文件。

代码:

Yii::$app->response->format = \yii\web\Response::FORMAT_RAW;
Yii::$app->response->charset = 'utf-8';
Yii::$app->response->headers->set('Content-Type', 'text/csv; charset=utf-8');
Yii::$app->response->headers->add('Content-Disposition', 'attachment; filename="myfile.csv"');
// header('Content-Type: text/plain; charset=UTF-8',true);

任何想法可能出错?我尝试了很多字符集(windows-1251,cp1251),text / plain - 没有结果。 此外,即使我将字符集设置为中文或任何其他字符,奇怪的字符总是一样的。

就像标题字符集不会更改,并且始终是“带BOM的UTF-8”。

Yii::$app->charset为'UTF-8',将text/csv更改为text/plain甚至text/json,或保存为.txt并在Excel中打开 - 结果相同。

0 个答案:

没有答案