我在c#中创建了facebook Rest API的克隆,我正在使用facebook PHP sdk进行测试。我遇到的问题是我的网络休息服务发送的响应包含utf-8 Bom,Facebook SDK无法正确解析响应。 关于如何解决这个问题的任何想法。
答案 0 :(得分:3)
如果您可以为服务指定特定的Encoding
,那么您可以使用不含BOM的new UTF8Encoding(false)
UTF-8。
答案 1 :(得分:1)
我不知道你在服务中返回了什么,但是如果它是像我一样的字符串(我正在返回一个json),你可以简单地返回一个Message对象而不是字符串(来自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);
答案 2 :(得分:0)
The Wikipedia UTF-8 article表明Windows应用程序经常预装到实际内容的假装BOM是三个字节长。你能不能简单地发送你生成的内容的前三个字节?