Comment convertir un fichier encodé ANSI en UTF-8 avec Notepad ++?

J’ai un site Web et je peux envoyer mes caractères turcs avec jQuery dans Firefox, mais Internet Explorer n’envoie pas mes caractères turcs. J’ai regardé mon fichier source dans le bloc-notes et la page de code de ce fichier est ANSI.

Lorsque je le convertis en UTF-8 sans BOM et ferme le fichier, le fichier est à nouveau ANSI lorsque je rouvre.

Comment convertir mon fichier ANSI en UTF-8?

En ce qui concerne cette partie:

Lorsque je le convertis en UTF-8 sans fichier bom et close, le fichier est à nouveau ANSI lorsque je rouvre.

La solution la plus simple consiste à éviter le problème en configurant correctement Notepad ++.

Essayez Settings -> Preferences -> New document -> Encoding -> choisissez UTF-8 sans nomenclature et cochez Apply to opened ANSI files .

De cette façon, tous les fichiers ANSI ouverts seront traités comme UTF-8 sans BOM.

Pour plus d’explications, lisez les commentaires ci-dessous.

Pour en savoir plus sur Unicode et UTF-8, lisez cet excellent article de Joel Spolsky.

Peut-être que ce n’est pas la réponse dont vous avez besoin, mais j’ai rencontré un problème similaire, alors j’ai décidé de le mettre ici.

Je devais convertir 500 fichiers xml en UTF8 via Notepad ++. Pourquoi Notepad ++? Lorsque j’ai utilisé l’option “Encoder en UTF8” (de nombreux autres convertisseurs utilisent la même logique), cela a gâché tous les caractères spéciaux. J’ai donc dû utiliser explicitement “Convertir en UTF8”.


Voici quelques étapes simples pour convertir plusieurs fichiers via Notepad ++ sans altérer les caractères spéciaux (par exemple, les signes diacritiques).

  1. Exécutez Notepad ++, puis ouvrez le menu Plugins-> Plugin Manager-> Show Plugin Manager
  2. Installez le script Python . Lorsque le plug-in est installé, redémarrez l’application.
  3. Choisissez le menu Plugins-> Script Python-> Nouveau script .
  4. Choisissez son nom, puis passez le code suivant:

convertirToUTF8.py

 import os import sys from Npp import notepad # import it first! filePathSrc="C:\\Users\\" # Path to the folder with files to convert for root, dirs, files in os.walk(filePathSrc): for fn in files: if fn[-4:] == '.xml': # Specify type of the files notepad.open(root + "\\" + fn) notepad.runMenuCommand("Encoding", "Convert to UTF-8") # notepad.save() # if you try to save/replace the file, an annoying confirmation window would popup. notepad.saveAs("{}{}".format(fn[:-4], '_utf8.xml')) notepad.close() 

Après tout, lancez le script

Si vous n’avez pas de caractères non-ASCII (points de code 128 et plus) dans votre fichier, UTF-8 sans nomenclature est identique à ASCII, octet pour octet – Notepad ++ devinera donc faux.

Ce que vous devez faire est de spécifier l’encodage des caractères lors de la réponse à AJAX – par exemple, avec PHP, vous devez le faire:

 header('Content-Type: application/json; charset=utf-8'); 

L’important est de spécifier le jeu de caractères avec chaque réponse JS. Sinon, IE utilisera l’encodage par défaut du système de l’utilisateur, ce qui est faux la plupart du temps.