You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2014-07-31 16:20:28

romain.vabre
Member
From: Toulouse
Registered: 2013-06-21
Posts: 97

[Astuce] Export CSV : Problème d'encodage avec Excel

Salut à tous,

Je viens de résoudre un problème qui me gêne depuis un petit moment. Je vais vous divulguer la solution que j’ai trouvée, car je ne pense pas être le seul à avoir eu ce problème.

Je suis en version 0.83.8, donc il est possible qu’une solution est été déployée dans les versions suivantes de GLPI.

Origine du problème : Problème d’encodage des caractères accentués, lorsqu’on souhaite ouvrir avec Excel le fichier CSV obtenu lors d’un export de donnés depuis GLPI.
On se retrouve avec ce genre d’affichage : Priorité

Explication du problème : Le fichier exporté est encodé en UTF-8, hors par défaut Excel ouvre le fichier CSV en ANSI, ce qui cause ces problèmes d’accentuation.

Solution au problème : Il faut indiquer à Excel que le fichier doit être ouvert en UTF-8.
Pour cela il faut ajouter 3 octets  au début du fichier pour qu’Excel sache que le fichier doit être ouvert en UTF. Pour plus d’infos chercher BOM (byte order mark).

Répercutions dans le code : Pour appliquer cette solution, il faut ajouter une ligne de code dans le fichier search.class.php.  Je rappelle je suis en version 0.83.8.

Dans la fonction static function showHeader($type, $rows, $cols, $fixed=0)
Quelques lignes plus basses vous trouverez :

case CSV_OUTPUT : // csv
header("Expires: Mon, 26 Nov 1962 00:00:00 GMT");
header('Pragma: private'); /// IE BUG + SSL
header('Cache-control: private, must-revalidate'); /// IE BUG + SSL
header("Content-disposition: filename=glpi.csv");
header('Content-type: application/octetstream');
break;

 

Il faut alors rajouter la ligne suivante, qui permet d’ajouter les 3 octets magiques :

echo"\xEF\xBB\xBF";

Ce qui vous donne au final :

case CSV_OUTPUT : // csv
header("Expires: Mon, 26 Nov 1962 00:00:00 GMT");
header('Pragma: private'); /// IE BUG + SSL
header('Cache-control: private, must-revalidate'); /// IE BUG + SSL
header("Content-disposition: filename=glpi.csv");
header('Content-type: application/octetstream');
echo"\xEF\xBB\xBF";
break;  

Et voilà c’est fini.

J’espere que sa pourrait aider des GLPIens.

Source qui m’a permis de problème : http://www.skoumal.net/en/making-utf-8-csv-excel
Romain

Last edited by romain.vabre (2014-07-31 16:20:48)

Offline

#2 2014-08-06 10:21:15

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: [Astuce] Export CSV : Problème d'encodage avec Excel

Génial !

voilà une astuce qu'elle est bonne.


Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9

Offline

#3 2014-09-10 08:09:31

sapi
Member
Registered: 2013-10-09
Posts: 75

Re: [Astuce] Export CSV : Problème d'encodage avec Excel

Excellent !

ça fait un petit bout de temps que ce problème nous chagrine

merci pour l'astuce

Offline

#4 2015-01-14 13:41:03

Thierry51
Member
From: Reims
Registered: 2011-09-26
Posts: 76

Re: [Astuce] Export CSV : Problème d'encodage avec Excel

Impeccable, fonctionne nikel !
Merci !

Offline

#5 2015-06-04 22:37:03

Bikarfioul
Member
Registered: 2009-12-01
Posts: 99

Re: [Astuce] Export CSV : Problème d'encodage avec Excel

Merci Romain.

Astuce super utile et qui fonctionne du tonnerre à ici. (seul les gens de l'Yonne peuvent comprendre cette foutu touche d'humour)

A+


GLPI 0.85.1 / Plugins Fusion : 085+1  / Agent : 2.3.14   < Serveur Centos 64 Bits>

Offline

#6 2015-06-05 09:40:42

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,278

Re: [Astuce] Export CSV : Problème d'encodage avec Excel

Cette modification a été inclus dans le coeur. Je clos ce post


CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6  - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)

Offline

Board footer

Powered by FluxBB