web-dev-qa-db-fra.com

Comment puis-je modifier du texte Unicode dans Notepad ++?

Parfois, je modifie du texte anglais comprenant des caractères Unicode. Pour une raison quelconque, sur mon PC, Notepad ++ convertit les caractères Unicode en ???, corrompant ainsi le texte et perdant toutes ces données. Je cherche un moyen de modifier ce texte, tout en préservant les caractères Unicode. J'utilise Consolas comme police. Si la police ne contient pas tous ces caractères, pourquoi devrais-je perdre les données lorsque je copie le texte hors de Notepad ++ (via le Presse-papiers de Windows)?

25
Robinicks

Si le fichier est réellement codé en Unicode, Notepad ++ devrait le détecter automatiquement. La police Consolas me convient bien. Vous pouvez essayer l'une de ces deux options de menu:

  • Encodage -> Encodé en UTF-8
  • Encodage -> Conversion en UTF-8

Je suis à peu près sûr que le premier fera ce que vous voulez.

14
DisgruntledGoat

Le problème décrit dans la question se produit lorsqu'un document vide/nouveau est défini sur "ANSI" et que Unicode les personnages y sont collés.

Il n'y a pas de détection automatique lorsqu'il est utilisé avec un document vide/nouveau, du moins pas dans la version de Notepad ++ pour laquelle je l'ai testé. "ANSI" est la valeur par défaut dans Notepad ++ pour un nouveau document, sauf si défini dans le menu Paramètres -> Préférences -> onglet Nouveau document/Open Save Directory .

Solution

La solution consiste à définir le codage sur UTF-8 avant de coller, menu Format -> Encoder en UTF-8 :

Menu command "menu Format/Encode in UTF-8" about to be executed

Exemple

J'ai copié du texte dans un nouveau document Notepad ++, russe (русский язык, russkiy yazyk) , à partir de Firefox affichant la page Wikipedia russe langue.

Si le codage est pas " modifié par rapport à" ANSI ", le résultat est le suivant:

Result of pasting the Unicode string "Russian (русский язык, russkiy yazyk" into a new Notepad++ document without changing the encoding from the default "ANSI".

Si l'encodage est modifié, le résultat est le suivant:

Result of pasting the Unicode string "Russian (русский язык, russkiy yazyk" into a new Notepad++ document after changing the encoding from the default "ANSI" to "UTF-8".

Comme on peut le voir sur la figure ci-dessous (la partie en cyrillique est en surbrillance), Notepad ++ convertit les caractères Unicode en ASCII 63 ( hex 3F), points d'interrogation. C’est pourquoi les caractères Unicode sont perdus (en mode "ANSI" ) lors de la copie du texte par le Presse-papiers (il s’agit et non d'un problème de police - l'information est perdue).

Screenshot of a hex view of said document

Testé sur: Notepad ++ v5.4.5 (UNICODE).

14
Peter Mortensen

Il y a de bonnes et de mauvaises nouvelles.

Bonne nouvelle: Notepad ++ prend en charge le format Unicode (du moins d'après ce que je peux recueillir).

Mauvaise nouvelle: Apparemment, le support Unicode n'est disponible que sous Windows XP.

En fait, je n'ai pas de machine Windows devant moi. D'après mes souvenirs, il existe un menu Encodage dans le menu Format quelque part. Le codage pour Unicode est en réalité le plus souvent UTF-8.

Voici une "jolie" image du support Unicode dans Notepad ++,

enter image description here

5
Josh Hunt

Unicode fonctionne parfaitement sous Windows 7. Le seul problème qui se pose est que vous devez ressaisir les caractères qui ont été modifiés. Il m'est arrivé J'écris avec des lettres scandinaves alors ä -> E4, ö -> F6. C'est un peu pénible de tous les remplacer, mais ça vaut le coup.

Si vous encodez une page à partir de ANSI -> UTF-8, il y aura des problèmes de caractères.

Je vous suggèrerais de créer d'abord une nouvelle page en UTF-8, puis de copier/coller vos informations. Il ne devrait pas y avoir de problèmes alors.

3
Sloshed

Ceci a fonctionné pour moi:

J'ai changé la police en Courier New dans le configurateur de styles sur mon PC (Windows 7 avec jeu de caractères anglais/américain et roumain pour un jeu non-Unicode). Cela fonctionne avec les polices Courier New & Tahoma + le codage UTF-8.

1
rapy rapy

Dans le menu du haut, sélectionnez Encoding, puis Encode in UTF-8 ou Encode in UTF-8 Without BOM, puis vous pourrez éditer le texte en codage Unicode.

0
Siavash