Grazie a questo sito e ad alcuni altri, ho creato un codice semplice per leggere i tag ID3v2.3 dai file MP3. Fare ciò è stata una grande esperienza di apprendimento in quanto non conoscevo hex/byte/binary ecc.Codifica del testo nei tag ID3v2.3
Posso leggere correttamente i dati, ma ho trovato un problema che credo abbia a che fare con la codifica utilizzata. Mi sono reso conto che i frame di testo hanno un byte all'inizio del "testo" che descrive la codifica utilizzata e potenzialmente più informazioni nei prossimi 2 byte ...
Esempio: I dati dal frame TIT2 iniziano con il byte $ 03 (esadecimale) prima del testo attuale. Questo testo viene visualizzato correttamente, anche se con un carattere aggiuntivo all'inizio, utilizzando Encoding.ASCII.GetString
In un altro MP3, i dati di TIT2 inizia $ 01 e è seguita da $ FF $ FE, che credo sia a che fare con Unicode ? Il testo stesso è suddiviso, ci sono $ 00 tra ogni carattere di testo, e questo impedisce la visualizzazione dei dati nei moduli di Windows (non appena si incontra un 00, il testo si ferma, così ottengo il primo carattere e basta). Ho provato a utilizzare Encoding.UNICODE.GetString, ma sembra che restituisca un messaggio senza senso.
La stampa di questi dati su una console sembra funzionare, con spazi tra ogni carattere, pertanto la lettura dei dati funziona correttamente.
Ho letto la documentazione ufficiale per ID3v2.3 ma suppongo di non averlo capito abbastanza per comprendere la sezione di codifica del testo.
Qualsiasi risposta o collegamento ad articoli che potrebbero essere d'aiuto sarebbe molto apprezzato!
saluti Ross
Grazie bobince - mi ha dato un sacco di lavorare su! – phanteh