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