C# 从WCF发送的响应中删除utf-8标识符(BOM)

C# 从WCF发送的响应中删除utf-8标识符(BOM),c#,.net,wcf,rest,utf-8,C#,.net,Wcf,Rest,Utf 8,我正在用c#创建facebook Rest API的克隆,我正在用facebook PHP sdk测试它。我遇到的问题是,我的NetREST服务发送的响应前面包含utf-8 Bom,Facebook SDK无法正确解析响应。 关于如何解决此问题的任何想法。建议Windows应用程序经常在实际内容前添加的假装BOM长度为三个字节。你能简单地不发送生成内容的前三个字节吗?如果你能为你的服务指定一个特定的编码,那么你可以使用新的UTF8Encoding(false),它是没有BOM的UTF-8。我不知

我正在用c#创建facebook Rest API的克隆,我正在用facebook PHP sdk测试它。我遇到的问题是,我的NetREST服务发送的响应前面包含utf-8 Bom,Facebook SDK无法正确解析响应。
关于如何解决此问题的任何想法。

建议Windows应用程序经常在实际内容前添加的假装BOM长度为三个字节。你能简单地不发送生成内容的前三个字节吗?

如果你能为你的服务指定一个特定的
编码,那么你可以使用
新的UTF8Encoding(false)
,它是没有BOM的UTF-8。

我不知道你在服务中返回什么,但是如果它是像我一样的字符串(我返回的是json),您只需返回一个包含字符串的消息对象(来自System.ServiceModel.Channels-google it),然后在服务方法实现结束时执行以下操作:

Encoding utf8 = new System.Text.UTF8Encoding(false); //false == no BOM
return WebOperationContext.Current.CreateTextResponse(stringWithContent, "application/json;charset=utf-8", utf8);