Je générer le fichier csv avec les commandes d'en-tête suivantes:fichier csv généré PHP affiche  £ pour un signe de la livre sterling (£) dans Excel 2007
header("Content-type: text/csv; charset=utf-8; encoding=utf-8");
header('Content-Disposition: attachment; filename="products.csv"');
Si j'ouvre le fichier dans Excel 2007 , alors je reçois £ partout où un signe £ devrait apparaître. Cependant, si j'ouvre le fichier dans Notepad ++, alors les signes dièse apparaissent bien; De même, si je change le type de contenu en texte/plain et que je supprime l'en-tête d'attachement, les signes dièse apparaissent correctement dans le navigateur.
Une chose étrange est que si je vais dans le menu "Format" dans Notepad ++, il apparaît que le fichier est codé en "UTF-8 sans nomenclature". Si je change cela en "Encoder en UTF-8", puis enregistrez le fichier, les signes dièse apparaissent correctement dans Excel. Y at-il un moyen de faire en sorte que le fichier est enregistré dans cet encodage par PHP?
Vous devez montrer plus de détails sur le script PHP générant le fichier –
Je sais que l'encodage UTF pour £ est £ pourriez-vous juste entré des livres de cette façon. Je n'ai pas d'expérience dans Excel, donc ceci pourrait être un commentaire inutile;) – theorise
L'encodage UTF pour £ n'est pas £ - c'est l'encodage HTML. Vous ne pouvez pas utiliser l'encodage HTML dans les fichiers CSV. – Gnuffo1