Всем привет.
Вопрос такой. Формирую csv - файл на сервере. В настройках самого сервера и БД стоит кодировка cp-1251.
Ту же кодировку выдает meta charset из самих настроек Битрикса.
При проверке кодировки функцией echo mb_internal_encoding(); - Выводит UTF-8. Почему - не понятно.
Далее. С помощью функции mb_convert_encoding($str, "UTF-8") - я перевожу поля, которые хочу записать в csv - в нужную мне кодировку.
Данный файл я заливаю на сторонний сервис - который перекодирует мои символы в ISO-8859-1, что соотв. неверно.
Что делал?
1) Убирал подключение - header.php в скрипте и менял на подключение пролога, чтобы были доступы модули информационных блоков - и далее ставил header('Content-Type: text/html; charset=utf-8');
2) Убирал подключение - header.php в скрипте и менял на подключение пролога и прям в скрипте писал свой meta utf-8
3) Убирал подключение - header.php в скрипте и менял на подключение пролога и задавал mb_internal_encoding("UTF-8")
Ничего из вышеперечисленного не помогло.
Вопрос вот в чем, правильно ли я понимаю, что раз файл обрабатывается (создается/перезаписывается) на сервере - ему абсолютно все равно, какой heder, meta и тд стоит именно в моем скрипте. Я в этом сомневаюсь, правда.
И второе, как сделать нужные мне действия не меняя cp на utf-8 глобально на сервере.
PS. Файл создавал как через стандартную php - функцию для работы с csv - так и через внутреннюю битриксовскую, которая лежит в модуле (/bitrix/modules/main/classes/general/csv_data.php)