Html-организации, такие как & euro; не преобразуется в его символ в преобразовании CSV

Я использовал парсер 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, но вы должны попробовать эти две вещи:

  1. Поместите символ евро непосредственно.

    или

  2. Ищите кодировку файлов 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, ';', '"');