Yii2 всегда устанавливает заголовок на «UTF-8 с спецификацией» для сохранения файлов

В Yii2 у меня есть контроллер, который сохраняет некоторые тексты из базы данных в файл .csv. Содержит русский (кириллический) язык. Проблема в том, что когда я открываю файл в Excel, он имеет плохую кодировку: Ð³Ñ € уР· овÐ

Для пользователей Mac OS и Windows результат кодировки Excel одинаков. Открытие в блокноте хорошо. НО Блокнот говорит, что у него есть кодировка «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 — безрезультатно. более того, странные символы всегда одинаковы, даже если я установил charset на китайский или любой другой.

Это похоже на то, что кодировка заголовков не изменяется и всегда «UTF-8 с спецификацией».

Yii::$app->charset это ‘UTF-8’, меняется text/csv в text/plain или даже text/jsonИли сохраните как .txt и откройте его в Excel — результаты те же.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector