【发布时间】:2018-09-01 06:17:06
【问题描述】:
我正在尝试将文件转换为包含一些特殊字符的 XML 格式,但由于数据中的特殊字符,它没有被转换。 我已经有了这个正则表达式代码,但它对我不起作用,请帮忙。
我尝试过的代码:
string filedata = @"D:\readwrite\test11.txt";
string input = ReadForFile(filedata);
string re1 = @"[^\u0000-\u007F]+";
string re5 = @"\p{Cs}";
data = Regex.Replace(input, re1, "");
data = Regex.Replace(input, re5, "");
XmlDocument xmlDocument = new XmlDocument();
try
{
xmlDocument = (XmlDocument)JsonConvert.DeserializeXmlNode(data);
var Xdoc = XDocument.Parse(xmlDocument.OuterXml);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
【问题讨论】:
-
这些特殊字符是否仅在文件的开头。如果是这种情况,那么您应该检查具有除 UTF-8 之外的其他编码的文件。它很可能是字节顺序标记,在这种情况下,您应该使用 string inputwithoutspecialchars = System.Text.Encoding.UTF8.GetBytes(input) 并在反序列化期间使用 inputwithoutspecialchars。
-
ReadForFile方法的内容是什么?正如@Soundarajan 所链接的问题所指出的那样,问题的根源可能是错误指定的输入编码,导致输入文件被误解。
标签: c# xmldocument