Codificação de texto em tags ID3v2.3
Graças a este site e a alguns outros, criei um código simples para ler tags ID3v2.3 de arquivos MP3. Fazer isso foi uma ótima experiência de aprendizado, já que eu não tinha conhecimento de hex / byte / binário etc.
Consigo ler dados com êxito, mas me deparei com um problema que acredito ter a ver com a codificação usada. Percebi que os quadros de texto têm um byte no início do 'texto' que descreve a codificação usada e, potencialmente, mais informações nos próximos 2 bytes ...
Exemplo: os dados do quadro TIT2 começam com o byte $ 03 (hex) antes do texto real. Este texto é exibido corretamente, embora com um caractere adicional no início, usando Encoding.ASCII.GetString
Em outro MP3, os dados do TIT2 começam em US $ 01 e são seguidos por US $ FF $ FE, o que acredito ter a ver com Unicode? O texto em si é dividido, existem US $ 00 entre cada caractere de texto, e isso impede que os dados sejam exibidos em formulários do Windows (assim que um 00 é encontrado, o texto para, então eu recebo o primeiro caractere e é isso) ) Eu tentei usar Encoding.UNICODE.GetString, mas isso parece retornar sem sentid
Imprimir esses dados em um console parece funcionar, com espaços entre cada caractere, para que a leitura dos dados esteja funcionando corretament
Eu estive lendo a documentação oficial do ID3v2.3, mas acho que não sou suficientemente informado para entender a seção de codificação de text
Quaisquer respostas ou links para artigos que possam ser úteis seriam muito apreciado
Regards Ross