Спасибо, думаю.Это может быть неправильное извлечение данных (мы еще не рассмотрели ваш сценарий).Только один из ваших GIF-файлов имел MathML - тот, у которого имя файла начинается с 106R.В этом случае, если вы просто захватываете все байты от первого бита, который выглядит как MathML до конца, вы периодически получаете там нечетные байты, в основном 255, кроме последнего.(Это, однако, не похоже на ненужный символ, который вы видите.) Причина 255-х в том, что MathML распределяется по нескольким записям комментариев, каждая из которых начинается с количества байтов в записи.Из MathType SDK (скачать бесплатно; ссылка ниже):
Файлы изображений GIF
Текст MathML встроен в файл GIF в виде записи расширения приложения, которая состоит из 14-заголовок байта (дескриптор расширения приложения), за которым следуют данные MTEF.Заголовок содержит:
Byte Introducer = 0x21;
Byte ExtensionLabel = 0xFF;
Byte BlockSize = 0x0B;
Byte ApplicationId[8] = "MathType";
Byte AuthenticationCode[3] = "003";
Данные следуют за этим заголовком и записываются в виде последовательности блоков, каждый из которых содержит 255 байтов или менее.Каждый блок начинается с одного байта, за которым следуют данные.Конец помечается как блок длиной 0.
Заголовок достаточно уникален, поэтому самым простым способом извлечения данных может быть сканирование файла на наличие 14-байтового заголовка, а затем ожидать, что блоки данных MathMLследовать.Правильное декодирование записей GIF также не так сложно, но, очевидно, требует, чтобы вы прочитали спецификацию GIF.
Возможно, вы уже используете SDK, но вы не сказали, были ли вы или нет,так вот ссылка: http://www.dessci.com/en/reference/sdk/.