Я использовал парсер 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, ';', '"');