Per quello che capisco, data una sequenza di byte senza ulteriori informazioni, non è generalmente possibile capire di quale codifica stiamo parlando. Ovviamente possiamo indovinare (ad esempio% per Encode::Guess
e strumenti simili), ma a volte questo non è fattibile.
Nel mio caso, ho un array di byte che è \xe2\x80\xa1
, e posso dedurre dal contesto (come umano) che dovrebbe corrispondere a un carattere à
( \xc3\xa0
in UTF-8 ) o a á
( \xc3\xa1
in UTF-8 ). Viene da un xml che dichiara iso8859-1 nell'intestazione, ed è prodotto da uno strumento di terze parti, che è chiaramente rotto, ma devo affrontarlo. Come puoi immaginare, la decodifica fallisce, e non c'è fortuna con Encode::Guess
.
Come affronteresti questo tipo di problema? So che non esiste un proiettile d'argento, ma esiste uno strumento che supera gli altri?