Arquivo de texto não convertido do formato binário

0

Eu tenho um arquivo CSV bastante grande (~ 700MB) que eu sei consistir em linhas de hashes alfanuméricos de 27 caracteres; sem vírgulas ou qualquer coisa extravagante. De alguma forma, durante a migração do Windows para o Linux (via winSCP e alguns SCPs comuns), ele foi convertido em algum tipo de formato binário com o qual não estou familiarizado.

Se eu abrir o arquivo no vi, tudo parece bem, e ele diz [convertido] na parte inferior, embora eu saiba que não é um problema de término de linha (e o dos2unix não ajuda). Se eu 'cabeça' o arquivo, parece adequado, exceto por um "ÿþ" no início da primeira linha. Se eu abrir o arquivo no nano, no entanto, vejo o "ÿþ" no início e depois "^ @" antes de cada caractere (até mesmo novas linhas e EoF).

Se eu tentar salvar novamente ou copiar o arquivo (por exemplo: head file.csv > short.txt), essa codificação especial será preservada. Copiei as primeiras dez linhas do vi (que o exibe corretamente) para a área de transferência do Windows por meio do meu cliente SSH e colei-o em um novo arquivo de texto, test.txt. Este arquivo é visualmente idêntico quando aberto no vi (e similar através de 'head', menos o "ÿþ"), embora seja aproximadamente a metade do tamanho do arquivo. Além disso,

file test.txt
test.txt: ASCII text
file short.txt
short.txt:

Eu não tenho idéia do formato para o qual esse arquivo de texto foi convertido (é notoriamente difícil pesquisar na Internet por símbolos), mas certamente deve haver alguma maneira de convertê-lo de volta. Alguma idéia?

    
por Hammer Bro. 28.12.2010 / 01:06

1 resposta

2

O "ÿþ" pode ser uma marca de ordem de bytes Unicode (BOM) e o ^ @ pode ser o primeiro byte de cada caractere Unicode de 16 bits.

Use recode ou iconv para convertê-lo de UTF-16 para ASCII.

    
por 28.12.2010 / 02:04