2011-11-10 7 views
3

私はFacebookのRest APIのクローンをC#で作成しています。これはfacebook PHP sdkでテストしています。私が午前の問題は、私のネット休息サービスによって送信された応答は、その前に、UTF-8 BOMが含まれているとFacebook SDKが正しく応答を解析することはできないということです。 この問題を解決する方法に関するアイデア。WCFが送信したレスポンスからutf-8識別子(BOM)を削除

答えて

0

The Wikipedia UTF-8 articleは、Windowsアプリケーションが頻繁に実際のコンテンツの前に付加するBOMが3バイト長いことを示しています。生成されたコンテンツの最初の3バイトを送信しないでください。

3

サービスに特定のEncodingを指定できる場合は、BOMのないUTF-8であるnew UTF8Encoding(false)を使用できます。

1

私はあなたのサービスで何を返すのかわかりませんが、私のような文字列(私はjsonを返していました)の場合は、単にSystemオブジェクトの文字列を返すだけです。 ServiceModel.Channels - google)、サービスメソッド実装の最後にこれを実行してください:

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