Obtenir/définir l'encodage de fichier avec du javascript FileReader
Je suis aux prises avec le problème suivant. À l'aide de javascript, je voudrais changer le jeu de caractères d'un fichier de contenu et d'affichage de ce contenu à l'utilisateur.
J'ai une entrée:forme de fichier. Sur le changement je suis à lire le contenu
$('#form input:file').change(function(event){
file = this.files[0];
reader = new FileReader();
reader.onload = function(event) {
result = event.target.result.replace(/\n/g,'<br />');
$('#filecontents').html(result);
});
reader.readAsText(file);
})
Le fichier est en Windows-1251. Je voudrais le convertir le contenu du fichier dans un autre encodage et après que de les présenter à l'utilisateur.
Est-ce possible à réaliser avec du javascript?
Ce qui concerne
OriginalL'auteur thebravoman | 2012-09-16
Vous devez vous connecter pour publier un commentaire.
Si votre page HTML en UTF-8 et que votre fichier est en ISO-8859-1.
Cela fonctionne:
Je n'ai pas de Windows-1251 fichier donc je n'ai pas pu le tester, mais il semble que le "CP1251" est prise en charge (par Google Chrome au moins), donc:
Si rien de tout cela fonctionne. Ensuite, vous devez modifier la mise en forme manuellement. Malheureusement, je ne suis pas au courant de toute bibliothèque JavaScript qui fait le tour.
De la correspondance unicode ici et de Delan Azabani réponse, vous devez gérer pour construire une fonction qui convertir char par char de votre chaîne dans CP1251 de l'UTF-8.
J'ai essayé cela avec un Shift-JIS fichier comme suit: reader.readAsText(f, "Shift-JIS"); converti en UTF-8 bien. Mais maintenant le problème est de savoir comment détecter le fait que le nouveau fichier est codé en Shift-JIS...parce que si j'essaie d'envoyer un UTF-8 fichier encodé dans cette fonction, il ne semble pas convertir correctement.
OriginalL'auteur Florian Parain