Благодаря этому и нескольким другим сайтам я создал простой код для чтения тегов ID3v2.3 из файлов MP3. . Это дало мне отличный опыт обучения, так как раньше я ничего не знал о шестнадцатеричном, байтовом, двоичном коде и т. д.
Я могу успешно читать данные, но столкнулся с проблемой, которая, как мне кажется, связана с используемой кодировкой. Я понял, что текстовые фреймы имеют байт в начале «текста», который описывает используемую кодировку, и, возможно, дополнительную информацию в следующих 2 байтах...
Пример: Данные из кадра TIT2 начинаются с байта $03 (шестнадцатеричный) перед фактическим текстом. Этот текст отображается правильно, хотя и с дополнительным символом в начале, с использованием Encoding.ASCII.GetString
В другом MP3 данные из TIT2 начинаются с $01, а за ними следует $FF $FE, что, как я полагаю, связано с Unicode? Однако сам текст разбит, между каждым текстовым символом есть $00, и это останавливает отображение данных в формах Windows (как только встречается 00, текст просто останавливается, поэтому я получаю первый символ и все ). Я пытался использовать Encoding.UNICODE.GetString, но это, похоже, возвращает тарабарщину.
Вывод этих данных на консоль, кажется, работает, с пробелами между символами, так что чтение данных работает правильно.
Я читал официальную документацию по ID3v2.3, но я думаю, что я просто недостаточно осведомлен, чтобы понять раздел кодирования текста.
Будем очень признательны за любые ответы или ссылки на статьи, которые могут быть полезны!
С уважением Ross