J'utilise Excel 2010 professionnel plus pour créer un fichier Excel. Plus tard, j'essaie de l'exporter en tant que fichier .csv UTF-8. Je le fais en l'enregistrant au format CSV (symbole séparé ..... sry Je ne connais pas le libellé exact ici mais je n'ai pas la version anglaise et je crains qu'il soit traduit différemment de 1: 1). Là je clique sur tools-> weboptions et sélectionne unicode (UTF-8) comme encodage. L'exemple .csv est la suivante:Excel csv exporter dans un fichier php avec fgetcsv
ID;englishName;germanName
1;Austria;Österreich
Jusqu'à présent, si bon, mais si j'ouvre le fichier maintenant avec mon code php:
header('Content-Type: text/html; charset=UTF-8');
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "UTF-8");
setlocale(LC_ALL, 'de_DE.utf8');
$fp=fopen($filePathName,'r');
while (($dataRow= fgetcsv($fp,0,";",'"'))!==FALSE)
{
print_r($dataRow);
}
- je reçois: sterreich suite sur l'écran (comme c'est "l'erreur" j'ai coupé toutes les autres parties du résultat).
- Si j'ouvre le fichier avec Notepad ++ et regarde l'encodage je vois "ANSI" au lieu de UTF-8.
- Si je change l'encodage dans notepad ++ en UTF8 .... les ö, ä, ... sont remplacés par des caractères spéciaux, que je dois corriger manuellement.
Si je vais un autre itinéraire et créer un nouveau fichier UTF-8 avec notedpad ++ et mis dans les mêmes données que dans le fichier Excel je suis montré « Österreich » à l'écran lorsque je l'ouvre avec le fichier php.
Maintenant, la question que j'ai est, pourquoi ne fonctionne-t-elle pas avec Excel, donc je fais quelque chose de mal ici? Ou suis-je en train de négliger quelque chose?
Edit: Comme le programme sera à la fin être installé sur les serveurs Windows fournis par les clients, une solution est nécessaire là où il est pas nécessaire d'installer des outils supplémentaires (bibliothèques php, ... sont ok, mais devoir installer un vm-ware ou cygwin, ... n'est pas). Il n'y aura pas non plus d'excel (ou bureau) installé localement sur le serveur car le client pourra télécharger le fichier .csv via une boîte de dialogue de téléchargement de fichier (la boîte de dialogue elle-même ne fait pas partie du problème, car je savoir comment gérer ceux-ci et en plus le problème lui-même j'ai trébuché sur quand j'ai créé un fichier Excel et l'ai converti en .csv sur un testmachine où Excel était installé localement).
Tnx
Le array_map était la solution tnx. Je ne pensais pas que j'aurais à le cartographier explecitely encore comme UTF-8 si j'ai déjà dit au programme que c'est UTF-8 ce que je lis. (phénomène intéressant ..... en plus d'exceller à l'exportation encore comme ANSI) Tnx à nouveau. – Thomas
Vous êtes les bienvenus à tout moment .... – Baba