Я пытаюсь проверить свой xml на его xsd и получить недопустимый символ в данной кодировке. Код я использую для проверки ниже:xml недопустимый символ в данной кодировке
private static void ValidatingProcess(string XSDPath, string xml)
{
MemoryStream stream =
new MemoryStream(ASCIIEncoding.Default.GetBytes(xml));
using (StreamReader SR = new StreamReader(XSDPath))
{
XmlSchema Schema = XmlSchema.Read(SR, ReaderSettings_ValidationEventHandler);
XmlReaderSettings ReaderSettings = new XmlReaderSettings();
ReaderSettings.ValidationType = ValidationType.Schema;
ReaderSettings.Schemas.Add(Schema);
ReaderSettings.ValidationEventHandler += ReaderSettings_ValidationEventHandler;
XmlReader objXmlReader = XmlReader.Create(stream, ReaderSettings);
bool notDone = true;
while (notDone)
{
notDone = objXmlReader.Read();
}
}
}
Она ошибка на символах, такие как é, так что я угадал это было тот факт, UTF-8 был определен как кодирование или, как я создать MemoryStream в приведенной выше коде с ASCIIEncoding. Я попытался изменить кодировку как xsd, так и xml на UTF-16 и memystream на UTF32, но, похоже, это не имеет никакого эффекта. Есть идеи?
Что кодирование файл в? – Oded
Вы конвертируете свою строку ввода в ASCII и задаетесь вопросом о проблемах с кодировкой символов, отличных от ASCII? – dtb
Какой файл? Если это xml, я передаю его в указанный выше метод как строку с конечным кодированием UTF-16, указанную в заголовке xml, и превращая его в поток памяти для использования. – PeteT