Bonjour,
J'aimerais avoir confirmation sur un point au sujet
de la création de fichiers encodés en UTF8 avec fopen
et fwrite.
Je sais que le sujet a été mainte fois évoqué mais c'est
tellement embrouillé et complexe qu'un petit éclaircissement
ne serait pas de trop. J'ai souvent lu par exemple qu'il fallait ajouter
l'option b (binary) a fopen mais apparemment ça ne fonctionne pas.
Ce que je cherche à faire c'est que mon script php puisse créé des fichiers txt encodés en UTF8. J'ai donc fais le test suivant:
J'ai tout d'abord encodé le fichier contenant ce script en latin-1 (iso-8859, je
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php $file = 'fichier.txt'; $str = 'éàè'; $f = fopen($file, 'w'); fwrite($f, $str); fclose($f); ?>
travail avec Vim).
Après avoir lancé le script, le fichier créé (fichier.txt) pèse 3 octets.
C'est donc qu'il est encodé en iso-8859.
Puis j'ai encodé le fichier contenant le script en UTF8, et là le fichier
créé pèse maintenant 6 octets. Il est donc encodé en UTF8.
D'où ma conclusion qui est que l'encodage d'un fichier lors de sa création
avec fopen ou fwrite dépends de l'encodage du fichier contenant le script, et
pas d'une option de fopen.
Est ce que j'ai bon ?
Merci pour vos éclaircissements.
Partager