Não há uma maneira confiável de converter uma codificação desconhecida em uma conhecida.
No seu caso, se você sabe que o texto original está em farsi / persa, talvez seja possível identificar várias codificações possíveis e iterar sobre elas até ver a saída esperada.
Com base no googling rápido, não há um conversor padrão e estável para a codificação do Sistema Iraniano legado, e o único restante A alternativa popular é a página de códigos do Windows 1256 . Eu incluí MacArabic aqui principalmente para fins ilustrativos (embora talvez seja mesmo uma alternativa viável para o Farsi também?)
for encoding in cp1256 macarabic; do
if iconv -f "$encoding" -t utf-8 inputfile >outputfile."$encoding"; then
echo "$encoding: possible"
else
echo "$encoding: skipped"
rm outputfile."$encoding"
fi
done
(Minha versão do iconv
não suporta realmente o MacArabic, mas talvez você tenha mais sorte; ou você pode tentar uma ferramenta de conversão diferente.)
Examine os arquivos de saída resultantes; veja se um deles parece fazer sentido.
Se você souber como deve ser a saída, também poderá procurar mapeamentos individuais para bytes no arquivo. Se o primeiro byte é 0x94 e você sabe que deve ser exibido como ﭖ você basicamente estabeleceu que a codificação é o Iran System. Talvez procure mais alguns bytes para verificar essa conclusão. A página da Wikipedia para esta codificação tem uma tabela com todos os caracteres. Obviamente, isso é meticuloso, lento e propenso a erros, especialmente se houver muitas codificações candidatas para escolher.
Para algumas codificações, você pode encontrar uma lista, por exemplo no link - para outros, talvez você só precise consultar as tabelas de codificação correspondentes da Wikipédia.