2017-01-11 3 views
1

Я работаю над проектом, который экспортирует простой CSV. Пока мой код работает и генерирует CSV, пока я использую английские символы.Кодирование французских символов, csv - PHP

Некоторые имена столбцов будут на французском языке и хотели бы иметь возможность кодировать это.

Вот что у меня есть:

<?php 
    // open the file "demosaved.csv" for writing 
    $file = fopen('myfrench-export.csv', 'w'); 
    // save the column headers 
    fputcsv($file, array('Question', 'Réponse 1/4', 'Réponse 2/4', 'Réponse 3/4', 'Réponse 4/4', 'Total completé', 'Total non-completé', 'Total cumulatif')); 

    // Sample data. This can be fetched from mysql too 
    $data = array(
     array('Data 11', 'Data 12', 'Data 13', 'Data 14', 'Data 15'), 
     array('Data 21', 'Data 22', 'Data 23', 'Data 24', 'Data 25'), 
     array('Data 31', 'Data 32', 'Data 33', 'Data 34', 'Data 35'), 
     array('Data 41', 'Data 42', 'Data 43', 'Data 44', 'Data 45'), 
     array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'), 
     array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'), 
     array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'), 
     array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55'), 
    ); 

    // save each row of the data 
    foreach ($data as $row) 
    { 
     fputcsv($file, $row); 
    } 

    // Close the file 
    fclose($file); ?> 
+0

Что вызывает кодирование французского текста как ** «RÃ © ponse 3/4» ** вместо ** «Réponse 3/4» ** и как его исправить? – codiiv

+0

Какую ОС вы кодируете? И в какой ОС работает ваш код? – MacPrawn

+0

Код на Windows 10, код запускается локально на Xampp и удаленно на Azure в приложении Wordpress. Это имеет значение, хотя? – codiiv

ответ

0

После некоторой проверки вокруг, я наткнулся на этот ответ, и я приспособил эту линию, применяя utf8_decode и работал.

В основном я заменил

fputcsv($file, array('Question', 'Réponse 1/4', 'Réponse 2/4', 'Réponse 3/4', 'Réponse 4/4', 'Total completé', 'Total non-completé', 'Total cumulatif'));

С

$array = array_map("utf8_decode", array('Question', 'Réponse 1/4', 'Réponse 2/4', 'Réponse 3/4', 'Réponse 4/4', 'Total completé', 'Total non-completé', 'Total cumulatif')); 

И это работало!

Смежные вопросы