Проблема сериализации XmlTextWriter

Я думаю, что ответ на этот вопрос на самом деле есть довольно много модальных текстовых редакторов, которые не являются форками vi / vim. Однако все они используют привязки клавиш vi . Пользователи Vi получают привязки клавиш в свою мышечную память, поэтому переучивать другой набор привязок клавиш будет действительно сложно, поэтому никто не будет создавать другой набор привязок клавиш.

Но многие разные редакторы заново внедрили привязки клавиш vi с нуля. Просто посмотрите на этот вопрос об IDE с привязками клавиш vi . По крайней мере половина ответов - это редакторы, созданные с нуля, которые реализуют привязки клавиш vi, а не версии встроенных vi.

15
задан fretje 9 June 2009 в 13:22
поделиться

2 ответа

Вот ваш код изменен, чтобы не добавлять метку порядка байтов ( BOM ):

var serializer = new XmlSerializer(typeof(Xsd.MESSAGE));
Encoding utf8EncodingWithNoByteOrderMark = new UTF8Encoding(false);
XmlTextWriter xtw = new XmlTextWriter(stream, utf8EncodingWithNoByteOrderMark);
serializer.Serialize(xtw, response);
string xml = Encoding.UTF8.GetString(stream.ToArray());
16
ответ дан 1 December 2019 в 03:24
поделиться

65279 - это метка порядка байтов Unicode - вы уверены, что вы? повторно получить 65249? Предполагая, что это действительно спецификация, вы можете избавиться от нее, создав экземпляр UTF8Encoding, который не использует спецификацию. (См. Подробности о перегрузках конструктора.)

Однако есть более простой способ получить UTF-8. Вы можете использовать StringWriter , но производный класс, который переопределяет свойство Encoding . См. этот ответ в качестве примера.

6
ответ дан 1 December 2019 в 03:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: