Решение этой конкретной проблемы для меня заключалось в том, что в самом начале файла был ненужный Порядок следования байтов , который мне пришлось удалить.После проверки файла с помощью шестнадцатеричного редактора я увидел следующие байты в файле:
EF BB BF
Среда выполнения Flash Player 9, по-видимому, имеетпроблема с этой меткой порядка байтов в файле UTF-8, которая не нужна, поскольку в UTF-8 нет порядка байтов, в отличие от UTF-16 и UTF-32.Flash Player 10 не имеет проблем с этой ведущей меткой порядка байтов.
Это объясняет, почему эта другая запись блога подтверждает, что для них сработало следующее решение:
xmlString = xmlString.substr(1);
Это конкретное решение не вполне мне помогло, поскольку оно переместило ошибку времени выполнения на пользователей Flash Player 10 вместо пользователей Flash Player 9.Поскольку у нас был контроль над вводом XML, мы могли бы просто изменить его, но если XML поступил из источника, который мы не контролировали, я полагаю, что мы могли бы протестировать ByteArray для ведущей спецификации и пропустить его, как показано выше.
Несколько записей в блоге помогли подтвердить, что проблема была в спецификации, например, в этой записи 1019 *, в которой комментатор утверждает, что его решение той же ошибки времени выполнения 1088 было:
Для меня проблема была в том, что XML сохранен в UTF с спецификацией.
Кроме того, эта другая запись блога предоставила больше подтверждений той же проблемы, возникающей в Java:
При работе с RSS-каналом в кодировке UTF-8 этот трехбайтовый шаблон (0xEF 0xBB 0xBF) в> прологе может вызвать всевозможные интересные проблемы синтаксического анализа XML