在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中打开 - 结果相同。