在ServiceStack.Text中使用UTF-16编码反序列化XML

时间:2013-08-16 07:49:21

标签: character-encoding servicestack xml-deserialization servicestack-text servicestack-bsd

我正在尝试使用ServiceStack.Text反序列化一些XML。

代码:

var buildEvent = dto.EventXml.FromXml<TfsEventBuildComplete>();

开头的xml行是:

<?xml version="1.0" encoding="UTF-16"?>

ServiceStack因以下错误而失败:

  

声明'utf-16'中的编码与文档'utf-8'的编码不匹配。

我可以从Xml Serializer的源代码看到ServiceStack使用UTF-8。

我想知道ServiceStack.Text是否可以反序列化UTF-16,如果是,如何?如果没有,为什么不呢?

1 个答案:

答案 0 :(得分:1)

我已经成功解决了这个问题。我并不为此感到自豪,但......

var buildEvent = dto.EventXml.Replace("utf-16", "utf-8").FromXml<TfsEventBuildComplete>();