Codificación de texto en etiquetas ID3v2.3

Gracias a este sitio y a algunos otros, he creado un código simple para leer etiquetas ID3v2.3 de archivos MP3. Hacerlo ha sido una gran experiencia de aprendizaje ya que anteriormente no tenía conocimiento de hexadecimal / byte / binario, etc.

Puedo leer datos con éxito, pero he encontrado un problema que creo que tiene que ver con la codificación utilizada. Me di cuenta de que los cuadros de texto tienen un byte al comienzo del 'texto' que describe la codificación utilizada, y potencialmente más información en los próximos 2 bytes ...

Ejemplo: los datos del cuadro TIT2 comienzan con el byte $ 03 (hexadecimal) antes del texto real. Este texto se muestra correctamente, aunque con un carácter adicional al principio, utilizando Encoding.ASCII.GetString

En otro MP3, los datos de TIT2 comienzan en $ 01 y van seguidos de $ FF $ FE, que creo que tiene que ver con Unicode. Sin embargo, el texto en sí está dividido, hay $ 00 entre cada carácter de texto, y esto evita que los datos se muestren en formularios de Windows (tan pronto como se encuentra un 00, el texto simplemente se detiene, así que obtengo el primer carácter y listo ) Intenté usar Encoding.UNICODE.GetString, pero parece que eso arroja galimatías.

Imprimir estos datos en una consola parece funcionar, con espacios entre cada carácter, por lo que la lectura de los datos funciona correctamente.

He estado leyendo la documentación oficial para ID3v2.3 pero supongo que no estoy lo suficientemente informado como para entender la sección de codificación de texto.

Cualquier respuesta o enlace a artículos que puedan ser de ayuda sería muy apreciada!

Regards Ross

Respuestas a la pregunta(6)

Su respuesta a la pregunta