3 votes

Conversion de Windows-1252 csv en UTF-8 avec PHP

J'utilise fopen pour lire un csv et fgetcsv pour lire les lignes du csv. Le csv est codé en Windows-1252, comment puis-je le convertir en UTF-8 pour qu'il ne coupe pas les lignes avec des caractères non standard ?

Jusqu'à présent, j'ai essayé ce qui suit :

setlocale(LC_ALL, 'en_GB.UTF-8');

et

drupal_convert_to_utf8($csv_line[3], 'Windows-1251'); // (I'm using Drupal 6.16)

Les deux semblent échouer.

5voto

Guillaume Lebourgeois Points 2400

Vous pouvez utiliser icônev pour ce genre de travail.

3voto

Daniel Baulig Points 4849

Je ne connais pas la fonction drupal_convert_to_utf8, mais jetez un œil à mb_convert_encoding.

Essayez d'utiliser mb_list_encodings pour être sûr que votre implémentation supporte Windows-1252. Sinon, essayez d'utiliser ISO 8859-1, c'est à peu près la même chose ( http://en.wikipedia.org/wiki/Windows-1252 ).

Vous devez également vous assurer que votre csv est bien en Windows-1252. Essayez d'utiliser mb_detect_encoding pour cela et utilisez le drapeau strict.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X