[RESOLU] Convertir Fichiers utf-8 en utf-16LE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Convertir Fichiers utf-8 en utf-16LE

Re: [RESOLU] Convertir Fichiers utf-8 en utf-16LE

par @rthur » 14 févr. 2017, 10:26

Ces 2 caractères correspondent au BOM :
https://fr.wikipedia.org/wiki/Indicateu ... des_octets.

Sans le BOM ton fichier était aussi correctement encodé mais le logiciel que tu utilises pour vérifier l'encodage t'indiquait quelque chose de faux vu que le BOM est facultatif

Re: Convertir Fichiers utf-8 en utf-16LE

par JohnDoe31 » 13 févr. 2017, 18:10

je te remercie pour ta réponse. je viens de tester mais cela ne fonctionné pas car il me trouvé aucun encodage du fichier.

Mais en fouillant le net et ta fonction "mb_convert_encoding", j'ai testé ceci:
$contenu=chr(255).chr(254).mb_convert_encoding( $contenu, 'UTF-16LE', 'UTF-8');
source: http://ctd-web.fr/blog/2010/05/14/php-c ... -utf-16le/

Le fichier est bien encodé en UTF-16LE.

Je n'ai pas d'explication du pourquoi il faut rajouté 2 caractères.

Merci :P

Re: Convertir Fichiers utf-8 en utf-16LE

par @rthur » 13 févr. 2017, 17:50

Bonjour,

Il n'existe pas de script tout fait mais tu peux le faire toi-même avec les fonctions :
- glob() pour lister tous les fichiers d'un répertoire : http://php.net/glob
- foreach() pour parcourir cette liste fichier par fichier : http://php.net/foreach
- file_get_contents() pour récupérer le contenu du fichier : http://php.net/file_get_contents
- file_put_contents() pour écrire le résultat converti dans un nouveau fichier (ou dans le même) : http://php.net/file_put_contents

Pour la conversion d'encodage, PHP dispose de 2 fonctions iconv() ou mb_convert_encoding() qui font à ma connaissance la même chose :
iconv("UTF-8", "UTF-16LE", $contenu);
// ou
mb_convert_encoding($contenu,'UTF-16LE','UTF-8');
Attention l'ordre des paramètres n'est pas le même.

http://php.net/iconv
http://php.net/mb_convert_encoding

Convertir Fichiers utf-8 en utf-16LE

par JohnDoe31 » 13 févr. 2017, 17:30

Bonjour A tous,

Actuellement, je crée des fichiers encodé en utf8 via PHP puis exécute un script PowerShell pour les convertir en UTF-16LE.
J'aimerais automatiser l'encodage via PHP.

Quel est le script pour encoder des lots de fichier de UTF-8 en UTF-16LE avec PHP ?

Je vous remercie
Cordialement