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

questionAnswers(6)

yourAnswerToTheQuestion