#c# #.net #wcf #rest #utf-8
#c# #.net #wcf #остальное #utf-8
Вопрос:
Я создаю клон facebook Rest API на c #, я тестирую его с facebook PHP sdk. Проблема, с которой я сталкиваюсь, заключается в том, что ответы, отправленные моей службой net Rest, содержат спецификацию utf-8 перед ней, и Facebook SDK не может правильно проанализировать ответы. Есть идеи о том, как решить эту проблему.
Ответ №1:
Если вы можете указать конкретный Encoding
для вашей службы, то вы можете использовать new UTF8Encoding(false)
кодировку UTF-8 без спецификации.
Ответ №2:
Я не знаю, что вы возвращаете в своем сервисе, но если это строка, подобная моей (я возвращал json), вы можете просто вернуть объект Message вместо этого со строкой в нем (из System.ServiceModel.Каналы — погуглите это), а затем в конце реализации вашего метода обслуживания просто сделайте это:
Encoding utf8 = new System.Text.UTF8Encoding(false); //false == no BOM
return WebOperationContext.Current.CreateTextResponse(stringWithContent, "application/json;charset=utf-8", utf8);
Ответ №3:
В статье в Википедии UTF-8 предполагается, что притворная спецификация, которую приложения Windows часто добавляют к фактическому содержимому, имеет длину в три байта. Можете ли вы просто не отправлять первые три байта вашего сгенерированного содержимого?