Существует частичный ответ, так как эти зависимости Maven больше не доступны. Пожалуйста, обратитесь к этому блогу для альтернативного исправления.
Если Вы пишете XML с XmlWriter, можно установить Кодирование на то, которое было инициализировано для игнорирования BOM.
EG: Система. Текст. Конструктор UTF8ENCODING берет булевскую переменную, чтобы указать, хотите ли Вы BOM, таким образом:
XmlWriter writer = XmlWriter.Create("foo.xml");
writer.Settings.Encoding = new System.Text.UTF8Encoding(false);
myXDocument.WriteTo(writer);
Создал бы XmlWriter с кодировкой UTF-8 и без Порядка байтов Mark.
Я не мог добавить комментарий выше, но если кто-либо использует предложение Chris Wenham, не забудьте Избавляться от устройства записи! Я провел некоторое время, задаваясь вопросом, почему мой вывод был усеченным, и это было причиной.
Предложите a using(XmlWriter...) {...}
изменитесь на предложение Chris
Своего рода комбинация регистраций, возможно, что-то вроде этого:
MemoryStream ms = new MemoryStream();
StreamWriter writer = new StreamWriter(ms, new UTF8Encoding(false));
xmlDocument.Save(writer);
Вы могли, вероятно, использовать Систему. Текст. Кодирование. Преобразуйте () на выводе; Так же, как что-то для попытки не что-то я протестировал.
Как указано, эта проблема имеет неприятный запах.
Согласно этому примечанию поддержки, Flash использует BOM для устранения неоднозначности между UTF-16BE и UTF-16LE, который является, как это должно быть. Таким образом, Вы не должны получать ошибку от Flash: XDocument производит закодированный правильно построенный XML UTF16, и Macromedia утверждает, что Flash может читать, UTF16 закодировал правильно построенный XML.
Это заставляет меня подозревать, что независимо от того, что проблема состоит в том, что Вы встречаетесь, это, вероятно, не вызывается BOM. Если бы это был я, то я вырыл бы вокруг больше с ожиданием, что фактическая проблема где-то в другом месте.
Преобразуйте его в строку, затем удалите метку сами.
Небольшой мод на ответ Криса Уэнхэма.
Вы не можете изменить кодировку после создания XmlWriter, но вы можете установить ее с помощью XmlWriterSettings при создании XmlWriter
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = new System.Text.UTF8Encoding(false);
XmlWriter writer = XmlWriter.Create("foo.xml", settings);
myXDocument.WriteTo(writer);