IronPython解析XML错误编码

时间:2013-06-07 08:28:05

标签: .net xml encoding ironpython

我正在使用XmlDocument类读取XML文件,但每当它读取属性的值时,它会将“æ”,“ø”和“å”等丹麦字符转换为\ xf8,这样后来会生成匹配正则表达式失败。

我试过这样做:

XMLDoc = XmlDocument()
XMLDoc.Load(StreamReader(path, Encoding.GetEncoding("ISO-8859-1")))

但是当我这样做时:

tablename = N.GetAttribute("TableName")  

它仍然出现:

u'Reg_konto_bel \ xf8b'

我希望它简单地说:Reg_konto_beløb Xml文件以ISO-8859-1编码 我还宣称在.py文件的顶部

# encoding: ISO-8859-1

有人可以帮忙吗?提前致谢

1 个答案:

答案 0 :(得分:-1)

您在python文件(PEP 0263)上指定的编码应该对.NET的XML库中发生的事情没有影响。 XML文件的编码应该在文件本身中指定,或者在阅读时明确指定。

即使您的XML文件很可能以正确的编码存储并使用正确的编码进行读取,strings in .NET的内存表示也是使用Unicode完成的。 小写 u -prefix指出以下字符串是Unicode字符串。

现在使用Unicode是许多技术的默认设置,您应该评估使用Unicode表达正则表达式和其他处理步骤是否是最灵活和容错的解决方案。