2

我正在使用 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

任何人都可以帮忙吗?提前致谢

4

1 回答 1

-1

您在 python 文件 ( PEP 0263 )顶部指定的编码应该不会影响 .NET 的 XML 库中发生的事情。XML 文件的编码应该在文件本身中指定,或者在阅读时像您的示例中那样明确指定。

即使您的 XML 文件很可能以正确的编码存储并使用正确的编码读取,但.NET 中字符串的内存表示是使用 Unicode 完成的。小写的u前缀表示后面的字符串是 Unicode 字符串。

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

于 2013-06-13T11:26:08.657 回答