IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Encodage de caractère lors de création d'un fichier


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 110
    Points : 61
    Points
    61
    Par défaut Encodage de caractère lors de création d'un fichier
    Coucoutte ! C'est encore le canard lol

    En relation avec ce sujet là : https://www.developpez.net/forums/d2.../#post11657090

    Voilà, le logiciel affiche n’importe quoi sur certains caractères, alors que quand je lis le fichier ini généré, ca s'affiche bien.

    Je compare l'encodage (avec Notepad++) du fichier d'origine et de celui qui est généré par mon script, et là je constate :
    Fichier d'origine : UCS-2 LE BOM
    Fichier généré : UTF-8

    Si je passe le fichier généré en UCS-2 LE BOM (première partie du menu Encodage de Notepad ++, pas "Convertir en UCS-2 LE BOM"), là c’est bon, le logiciel affiche comme il faut.

    Je remets le zip incluant la page HTML et le fichier ini à éditer . language editor bis.zip

    J'ai bien tenté de changer pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type: "text/plain;charset=UCS-2 LE BOM"
    dans la fonction "genini" , mais ca sort toujours en UTF-8

    Je suis un peu couincé su coup

    Une titre n'idée ?

    Merkouin
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    8 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 8 557
    Points : 13 238
    Points
    13 238
    Par défaut
    essayer de mettre l'encodage de votre page d'édition en UCS-2, peut-être que le javascript utilise cette valeur pour savoir quels encodages utiliser.

  3. #3
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 110
    Points : 61
    Points
    61
    Par défaut
    Hello,;

    Merci pour cette piste, mais ça n'a pas l'air d’être bon car la console indique :
    Un encodage de caractères non géré a été déclaré pour le document HTML en utilisant une balise « meta ». La déclaration a été ignorée.
    Edit :
    Solutionné grâce à ce sujet sur lequel je viens de tomber :
    https://stackoverflow.com/questions/...-file/43099608

    Je recopie le code ici au cas où le sujet d'origine disparaisse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    document.getElementById('download').addEventListener('click', function(){
     
    	downloadUtf16('Hello, World', 'myFile.csv')
    });
     
    function downloadUtf16(str, filename) {
     
    	// ref: https://stackoverflow.com/q/6226189
    	var charCode, byteArray = [];
     
    	// BE BOM
      byteArray.push(254, 255);
     
    	// LE BOM
      // byteArray.push(255, 254);
     
      for (var i = 0; i < str.length; ++i) {
     
        charCode = str.charCodeAt(i);
     
        // BE Bytes
        byteArray.push((charCode & 0xFF00) >>> 8);
        byteArray.push(charCode & 0xFF);
     
        // LE Bytes
        // byteArray.push(charCode & 0xff);
        // byteArray.push(charCode / 256 >>> 0);
      }
     
      var blob = new Blob([new Uint8Array(byteArray)], {type:'text/plain;charset=UTF-16BE;'});
      var blobUrl = URL.createObjectURL(blob);
     
    	// ref: https://stackoverflow.com/a/18197511
      var link = document.createElement('a');
      link.href = blobUrl;
      link.download = filename;
     
      if (document.createEvent) {
        var event = document.createEvent('MouseEvents');
        event.initEvent('click', true, true);
        link.dispatchEvent(event);
      } else {
        link.click();
      }
    }
    Et le petit bouton pour déclencher la fonction :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <button id="download">Download</button>
    à normalement mettre avant le script JS si on veut garder la méthode avec le listener.
    Bien sur il suffit de commenter et dé-commenter si on veut passer de BE à LE.
    Apparemment UTF-16 est similaire à UCS-2, en tout cas notepad ++ voit comme UCS-2 LE BOM et Jingle Palette accepte le fichier.

    Et du coup, bye bye le FileSaver.js lol

    Voilà, avec un peu de chance ça pourra peut être servir à quelqu'un d'autre car c'est hard de trouver des infos à ce sujet

    Du coup, hop , résolute

    A ploutch' !
    Couin
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Problème avec caractère ! lors d'une lecture de fichier pour extraction
    Par damsmut dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 20/11/2012, 17h21
  2. Réponses: 5
    Dernier message: 28/07/2011, 13h42
  3. erreur lors de création d'un fichier xml
    Par nancy maman dans le forum Général Python
    Réponses: 1
    Dernier message: 23/05/2011, 19h12
  4. [PHP 5.3] Perte de caractères lors d'une lecture de fichier
    Par Vince57 dans le forum Langage
    Réponses: 2
    Dernier message: 28/08/2010, 20h03
  5. [Windows XP] Pb d'encodage de caractères lors de l'import
    Par Celeri dans le forum Installation
    Réponses: 5
    Dernier message: 20/06/2006, 00h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo