Sto cercando di identificare uno strano personaggio che ho trovato in un file con cui sto lavorando:
$ cat file
�
$ od file
0000000 005353
0000002
$ od -c file
0000000 353 \n
0000002
$ od -x file
0000000 0aeb
0000002
Il file utilizza la codifica ISO-8859 e non può essere convertito in 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
La mia domanda principale è come posso interpretare l'output di odqui? Sto cercando di usare questa pagina che mi permette di tradurre tra diverse rappresentazioni di caratteri, ma mi dice che 005353come un "punto di codice esadecimale" è 卓che non sembra giusto e 0aebcome un "punto di codice esadecimale" ૫che, ancora, sembra sbagliato .
Così, come posso utilizzare una qualsiasi delle tre opzioni ( 355, 005353o 0aeb) per scoprire quale personaggio che dovrebbero rappresentare?
E sì, ho provato con gli strumenti Unicode ma non sembra nemmeno essere un carattere UTF valido:
$ 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
se capisco la descrizione del personaggio Unicode U + FFFD, non è affatto un personaggio reale ma un segnaposto per un personaggio corrotto. Il che ha senso dato che il file non è in realtà codificato UTF-8.
ëè quello che vedo quando i dati vengono utilizzati su un altro programma! Ma come posso saperlo? Non è da qualche parte nei dati che fornisco? Come l'hai trovato? Oh Avevo provato iconvcon -f ISO-8859ma lamentato conversion from ISO-8859' non è che beneficiano del sostegno.
ebe ignorare l' 0xindicatore esadecimale o qualunque cosa sia. La mia ignoranza di questo genere di cose è profonda. Potresti pubblicare una risposta spiegando che @StephenKitt?
iconvsarebbe riuscito; e / o avresti potuto cercarlo, ad esempio su Wikipedia. Per questa codifica molto specifica, fileformat.info/info/unicode/char/00eb/index.htm funziona anche (Unicode è equivalente a ISO-8859-1 nell'intervallo 128-255, anche se ovviamente nessuna codifica UTF è compatibile con essa ).
iconvlamenta perché non hai specificato il set di caratteri di origine, quindi utilizza il tuo valore predefinito che è probabilmente UTF-8.)