1 votes

Détecter l'encodage des caractères inconnus dans Notepad++ et trouver/remplacer

J'ai un fichier CSV dans lequel je peux voir l'extrait suivant:

capture d'écran

J'ai trouvé ces caractères "noirs" en faisant défiler le fichier. Le fichier est énorme (32 Mo). Je ne suis pas sûr de l'encodage du fichier; Pour le moment, mon Notepad++ est réglé sur "Encoder en UTF-8". De plus, lorsque j'essaie de faire ASCII -> HEX (Plugins->Converter->ASCII -> HEX), j'obtiens la sortie suivante:

EDA0BDEDB88A

J'aimerais savoir:

  • L'encodage de ces caractères noirs.
  • Une expression régulière pour trouver des occurrences similaires dans mon fichier CSV.

1voto

Wouter Points 1441

Les caractères noirs sont causés par Notepad ++ qui ne peut pas mapper ces séquences de bytes à un point de terminaison UTF-8 qui peut être visualisé. Comme vous le savez peut-être, chaque caractère est stocké sous forme de séries de bytes. Dans ce cas, ces bytes sont

En Hexadécimal

ED A0 BD ED B8 8A

En Binaire

1110 1101 1010 0000 1011 1101 1110 1101 1011 1000 1000 1010

Cela nous amène à vos questions.

Quel est le codage de ces caractères noirs ?

Il s'agit de deux caractères UTF-8. Plus précisément, le premier ED A0 BD est appelé un 'haute substitution' et le second ED B8 8A est une 'basse substitution'. Ensemble, ils forment une substitution UCS. Maintenant que nous savons qu'il s'agit de caractères de substitution, nous pouvons inverser le calcul des paires de substitution.

Si vous cherchez ces séquences de bytes dans la table des points de code UTF-8, vous verrez que le premier correspond à U+D83D et le deuxième à U+DE0A. Donc, la paire est D83D+DE0A. Cela correspond à U+1F60A, qui est..... roulement de tambour Un smiley!

Donc, la séquence que vous voyez... est un smiley.

Une expression régulière pour trouver ces caractères

Maintenant que nous savons cela, nous pouvons utiliser regex pour trouver des séquences comme celle-ci comme ceci :

\x{D83D}\x{DE0A}

Et ensuite pour la question que vous avez ajoutée dans les commentaires plus tard (c'est une modification).

Y a-t-il un autre utilitaire pour trouver les caractères qui ne sont pas en UTF-8 dans mon fichier csv.

J'ai montré que les caractères dans votre fichier sont bien UTF-8. Cependant, pour répondre quand même à votre question, si vous voulez un outil pour essayer de trouver manuellement le codage de certains caractères, vous pouvez utiliser ce site web. Ici vous pouvez entrer du texte, spécifier le codage, et le transformer en un autre codage pour voir à quels caractères cela correspond.

0 votes

Est-ce qu'il y a d'autres utilitaires que je peux trouver les caractères qui ne sont pas en UTF-8 dans mon fichier csv. Veuillez me le faire savoir

0 votes

J'ai trouvé! :) Jetez un œil à ma modification. La séquence que vous regardez est un smiley! Problème résolu. Cas clos.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X