[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: меняется кодировка csv файла при добавлении данных
nachalnik
проблема следующая:
данные заказа на сайте нужно сохранить в csv файл, но чтоб в excel потом они адекватно отображались.
я так понимаю чтоб все было ок необходимо чтоб csv имел кодировку cp1251 НО:
fopen - создает файл utf8
скопировал на сервер файл пустой с cp1251 кодировкой, копирую его когда нужен новый csv - после копирования кодировка не меняется, но как только добавляю в файл хоть что-нибудь fputcsv , кодировка файла становится utf8
F4 в файле все читается
но если открыть в excel то вижу Модель

Помогите победить sad.gif



Спустя 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.
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 преобразования - не помогло, да и пробовал я уже этот метод , только чуть не в таком виде как вы предложили.
походу без вариантов . придется ручками((

Спустя 17 часов, 49 минут, 15 секунд (27.12.2011 - 11:02) nachalnik написал(а):
короче разница была в UTF8 и UTF8 BOM (в которой сохранялся на сервере)
скинул на сервер пустой файл в UTF8(три скрытых символа в начале файла есть) и потом как и раньше. теперь и в Excel и F4 нормально открывается
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.