C# WCF/.NET-旧版目标系统的字符集不支持筛选字符

C# WCF/.NET-旧版目标系统的字符集不支持筛选字符,c#,.net,wcf,mainframe,ibm,C#,.net,Wcf,Mainframe,Ibm,我们必须处理与支持UTF-8/UTF-16的.NET主系统具有不同受限字符集()的遗留系统。 主系统使用带有web服务的WCF与遗留系统对话;web服务背后发生的事情的逻辑无法修改,因为它是由事务服务处理的,我们通常看到的是,包含在字符串中的不受支持的字符存储在目标系统中,被替换为。 这种替换行为就是IBM所称的“。 子字符是一个问题,因为它不是XML中的有效字符,并且不能被其他系统读回 我们可以做的是在调用之前过滤和清理传递给WCF的.NET对象的字符串;.NET对象可能是具有多个嵌套级别的复

我们必须处理与支持UTF-8/UTF-16的.NET主系统具有不同受限字符集()的遗留系统。
主系统使用带有web服务的WCF与遗留系统对话;web服务背后发生的事情的逻辑无法修改,因为它是由事务服务处理的,我们通常看到的是,包含在字符串中的不受支持的字符存储在目标系统中,被替换为。
这种替换行为就是IBM所称的“。
子字符是一个问题,因为它不是XML中的有效字符,并且不能被其他系统读回

我们可以做的是在调用之前过滤和清理传递给WCF的.NET对象的字符串;.NET对象可能是具有多个嵌套级别的复杂对象。
一种策略是将对象序列化为XML,替换遗留系统上不支持的字符,序列化回.NET对象并调用web服务;这可能会起作用,但这意味着通话中会有一些开销。 另一个解决方案是扩展WCF XML1.0 datacontract,以某种方式删除有问题的字符


您还有其他策略来处理这种情况吗?

使用不同的替换字符。@RobertHarvey那太好了,但我不知道在给定的字符集中是否可以。这个字符集是否与XML完全不兼容?听起来很合理。所需的只是代码。