Я использовал парсер CSV из http://code.google.com/p/parsecsv-for-php/ , чтобы экспортировать свои отчеты в CSV в PHP. Я отобразил общий объем продаж в €XXXX.XX , как в браузере, так и в Excel (после экспорта), отображается с символом Евро.
Но в CSV, вместо символа евро, отображается код € только.
Как я могу экспортировать этот € к соответствующему символу CSV.
Заранее спасибо. Счастливое кодирование 🙂
Вам нужно будет использовать html_entity_decode() в строках, прежде чем записывать их в файл, который найдет все html-объекты и заменит их своим фактическим символом.
html_special_chars() и html_special_chars_decode() работают только с несколькими объектами html, такими как > и < , а htmlentities() и html_entity_decode() работают над всеми из них.
Кроме того, вы можете просто заменить строку ( str_replace() или preg_replace() или что-то еще) для € заменить на € .
Затем попробуйте:
str_replace('€','€',$valuebeingexported);
По моему мнению, Excel имеет некоторые проблемы с отображением CSV-файлов с символами unicode. Вы можете попробовать один раз:
используйте fputcsv() с обработкой utf-8 .
что-то вроде ниже:
$handler = fopen("php://output", "w"); header("Content-Type: text/csv; charset=UTF-8"); fputcsv($handler, $fields, ';', '"'); fclose($handler);
Примечание. php://output – это поток только для записи, который позволяет вам записывать в выходной буферный механизм так же, как print () и echo ().
Я не знаю много в файлах CSV, но вы должны попробовать эти две вещи:
Поместите символ евро непосредственно.
или
Ищите кодировку файлов CSV.
Это было единственное, что чисто фиксировало это для меня
html_entity_decode($text, ENT_QUOTES, 'utf-8')
Вы пытались использовать € для €, вместо € ?
Попробуй это
//add BOM to fix UTF-8 in Excel fputs($fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) )); fputcsv($handler, $fields, ';', '"');