Tag: invalid characters

如何阻止XMLReader抛出无效的XML字符exception

所以我有一些XML: my tagmy tag value and my invalid Character 和XMLReader: using (XmlReader reader = XmlReader.Create(new StringReader(xml))) { while (reader.Read()) { //do my thing } } 我已经从这里实现了CleanInvalidCharacters方法,但由于“&#xB”尚未编码,因此不会被删除。 读者错误正在抛出.Read(); 有exception的行: hex值0x0B,是无效字符。

Base64字符串抛出无效字符错误

即使我不应该,我仍然会收到Base64无效字符错误。 该程序采用XML文件并将其导出到文档。 如果用户想要,它也会压缩文件。 压缩工作正常并返回一个Base64字符串,该字符串被编码为UTF-8并写入文件。 当它将文档重新加载到程序中时,我必须检查它是否被压缩,代码只是: byte[] gzBuffer = System.Convert.FromBase64String(text); return “1F-8B-08” == BitConverter.ToString(new List(gzBuffer).GetRange(4, 3).ToArray()); 它检查字符串的开头以查看其中是否包含GZips代码。 现在问题是,我的所有测试都有效。 我拿一根绳子,压缩它,解压缩,并将它与原始的相比较。 问题是当我从ADO Recordset返回字符串时。 字符串正是写入文件的内容(最后添加了一个“\ 0”,但我认为即使做了任何事情,甚至修剪它仍然会抛出)。 我甚至将整个字符串复制并粘贴到测试方法中并压缩/解压缩。 工作良好。 测试将通过,但代码将使用完全相同的字符串失败? 唯一的区别是,不是仅仅声明一个常规字符串并传递它,而是从记录集中返回一个。 关于我做错什么的任何想法?