данные заказа на сайте нужно сохранить в csv файл, но чтоб в excel потом они адекватно отображались.
я так понимаю чтоб все было ок необходимо чтоб csv имел кодировку cp1251 НО:
fopen - создает файл utf8
скопировал на сервер файл пустой с cp1251 кодировкой, копирую его когда нужен новый csv - после копирования кодировка не меняется, но как только добавляю в файл хоть что-нибудь fputcsv , кодировка файла становится utf8
F4 в файле все читается
но если открыть в excel то вижу Модель
Помогите победить
Спустя 2 часа, 18 минут, 58 секунд (26.12.2011 - 15:43) killer8080 написал(а):
Цитата (nachalnik @ 26.12.2011 - 12:24) |
fopen - создает файл utf8 |
fopen открывает дескриптор к файлу, ему пофигу кодировки, контент вообще может быть бинарным. Покажи код.
Спустя 30 минут, 10 секунд (26.12.2011 - 16:13) nachalnik написал(а):
// копируем файл с кодировкой cp1251 ; $filename - имя файла куда будет писаться заказ
copy(FULL_PATH . 'pictures/modules/csv/res/order.csv', $filename);
$csvfile = fopen($filename , 'a+');
fputcsv($csvfile, array('что-нибудь'), ';'); // после этого действия кодировка файла изменяется на utf8
fclose($csvfile);
открываем f4 - русский текст читаемый
открываем в excel - ничего не понятно
Спустя 8 минут, 10 секунд (26.12.2011 - 16:21) killer8080 написал(а):
nachalnik
Видимо сам скрипт в юникоде, потому и сохраняет юникод. Либо смени кодировку файла на 1251, либо обработай массив через iconv.
Видимо сам скрипт в юникоде, потому и сохраняет юникод. Либо смени кодировку файла на 1251, либо обработай массив через iconv.
fputcsv($csvfile, array_map(create_function('$v', 'return iconv("utf-8", "windows-1251", $v);'), array('что-нибудь')), ';');
Спустя 51 минута, 54 секунды (26.12.2011 - 17:13) nachalnik написал(а):
изменение кодировки файла ни к чему не привело и , я так понимаю, не приведет ни к чему тк все скрипты сайта в utf8 и непонятно что будет если файл в cp1251 подключает в себе файлы в utf8.
насчет iconv преобразования - не помогло, да и пробовал я уже этот метод , только чуть не в таком виде как вы предложили.
походу без вариантов . придется ручками((
насчет iconv преобразования - не помогло, да и пробовал я уже этот метод , только чуть не в таком виде как вы предложили.
походу без вариантов . придется ручками((
Спустя 17 часов, 49 минут, 15 секунд (27.12.2011 - 11:02) nachalnik написал(а):
короче разница была в UTF8 и UTF8 BOM (в которой сохранялся на сервере)
скинул на сервер пустой файл в UTF8(три скрытых символа в начале файла есть) и потом как и раньше. теперь и в Excel и F4 нормально открывается
скинул на сервер пустой файл в UTF8(три скрытых символа в начале файла есть) и потом как и раньше. теперь и в Excel и F4 нормально открывается