Estou tentando identificar um caractere estranho que encontrei em um arquivo com o qual estou trabalhando:
$ cat file
�
$ od file
0000000 005353
0000002
$ od -c file
0000000 353 \n
0000002
$ od -x file
0000000 0aeb
0000002
O arquivo está usando a codificação ISO-8859 e não pode ser convertido em 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
Minha principal pergunta é como posso interpretar a saída oddaqui? Estou tentando usar esta página que me permite traduzir entre diferentes representações de caracteres, mas ele me diz que 005353como um "ponto de código hexadecimal" é o 卓que não parece certo e 0aebcomo um "ponto de código hexadecimal" é o ૫que, novamente, parece errado .
Então, como posso usar qualquer uma das três opções ( 355, 005353ou 0aeb) para descobrir qual personagem eles devem representar?
E sim, tentei com ferramentas Unicode, mas também não parece ser um caractere UTF válido:
$ 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 eu entendo a descrição do caractere Unicode U + FFFD, ele não é um caractere real, mas um espaço reservado para um caractere corrompido. O que faz sentido, já que o arquivo não é realmente codificado em UTF-8.
ëé o que vejo quando os dados são usados em outro programa! Mas como eu sei disso? Não está em algum lugar nos dados que forneço? Como você encontrou isso? Oh eu tinha tentado iconvcom -f ISO-8859mas reclamou conversion from ISO-8859' não é supported`.
ebe ignorar o 0xindicador hexadecimal ou o que quer que seja. Minha ignorância desse tipo de coisa é profunda. Você poderia postar uma resposta explicando que @StephenKitt?
iconvteria conseguido; e / ou você poderia ter procurado, por exemplo, na Wikipedia. Para essa codificação muito específica, fileformat.info/info/unicode/char/00eb/index.htm também funciona (o Unicode é equivalente à ISO-8859-1 no intervalo 128-255, embora, obviamente, nenhuma codificação UTF seja compatível com ela. )
iconvReclama porque você não especificar o conjunto de caracteres de origem, para que ele usa o padrão que provavelmente é UTF-8.)