У меня есть следующий код, используемый для получения XML из DataSet в байтовый массив с использованием кодировки UTF-8:
private static byte[] fGetXmlBytes(DataTable lvDataTable)
{
XmlWriterSettings lvSettings = new XmlWriterSettings();
lvSettings.Encoding = Encoding.UTF8;
lvSettings.NewLineHandling = NewLineHandling.Replace;
lvSettings.NewLineChars = String.Empty;
using(MemoryStream lvMemoryStream = new MemoryStream())
using (XmlWriter lvWriter = XmlWriter.Create(lvMemoryStream, lvSettings))
{
lvDataTable.WriteXml(lvWriter, XmlWriteMode.IgnoreSchema);
//Lines used during debugging
//byte[] lvXmlBytes = lvMemoryStream.GetBuffer();
//String lsXml = Encoding.UTF8.GetString(lvXmlBytes, 0, lvXmlBytes.Length);
return lvMemoryStream.GetBuffer();
}
}
Я хочу байтовый массив, потому что впоследствии я передаю данные процедурам сжатия и шифрования, которые работают с байтовыми массивами. Проблема в том, что я получаю дополнительный символ в начале XML. Вместо:
<?xml version="1.0" encoding="utf-8"?><etc....
Я получаю
.<?xml version="1.0" encoding="utf-8"?><etc....
Кто-нибудь знает, почему персонаж там? Есть ли способ предотвратить добавление персонажа? Или легко раздеться?
Colin