J'essaie d'identifier un personnage étrange que j'ai trouvé dans un fichier avec lequel je travaille:
$ cat file
�
$ od file
0000000 005353
0000002
$ od -c file
0000000 353 \n
0000002
$ od -x file
0000000 0aeb
0000002
Le fichier utilise le codage ISO-8859 et ne peut pas être converti en UTF-8:
$ iconv -f ISO-8859 -t UTF-8 file
iconv: conversion from `ISO-8859' is not supported
Try `iconv --help' or `iconv --usage' for more information.
$ iconv -t UTF-8 file
iconv: illegal input sequence at position 0
$ file file
file: ISO-8859 text
Ma principale question est de savoir comment puis-je interpréter la sortie d' odici? J'essaie d'utiliser cette page qui me permet de traduire entre différentes représentations de caractères, mais elle me dit qu'en 005353tant que "point de code hexadécimal" 卓ce qui ne semble pas correct et en 0aebtant que "point de code hexadécimal" est ૫ce qui, encore une fois, semble incorrect .
Alors, comment puis-je utiliser l'une des trois options ( 355, 005353ou 0aeb) pour savoir quel personnage ils sont censés représenter?
Et oui, j'ai essayé avec les outils Unicode mais il ne semble pas non plus être un caractère UTF valide:
$ uniprops $(cat file)
U+FFFD ‹�› \N{REPLACEMENT CHARACTER}
\pS \p{So}
All Any Assigned Common Zyyy So S Gr_Base Grapheme_Base Graph X_POSIX_Graph
GrBase Other_Symbol Print X_POSIX_Print Symbol Specials Unicode
si je comprends la description du caractère Unicode U + FFFD, ce n'est pas du tout un vrai caractère mais un espace réservé pour un caractère corrompu. Ce qui est logique puisque le fichier n'est pas réellement encodé en UTF-8.
ëc'est ce que je vois quand les données sont utilisées sur un autre programme! Mais comment puis-je le savoir? N'est-ce pas quelque part dans les données que je fournis? Comment avez-vous trouvé? Oh, j'avais essayé iconvavec -f ISO-8859mais il se plaignait de l' conversion from ISO-8859 «n'est pas pris en charge».
ebet ignorer l' 0xindicateur hexadécimal ou quoi que ce soit. Mon ignorance de ce genre de chose est profonde. Pourriez-vous poster une réponse expliquant que @StephenKitt?
iconvauriez réussi; et / ou vous auriez pu le rechercher par exemple sur Wikipédia. Pour cet encodage très spécifique, fileformat.info/info/unicode/char/00eb/index.htm fonctionne également (Unicode est équivalent à ISO-8859-1 dans la gamme 128-255, bien que bien sûr aucun encodage UTF ne soit compatible avec lui ).
iconvplaint parce que vous n'avez pas spécifié le jeu de caractères source, il utilise donc votre valeur par défaut qui est probablement UTF-8.)