Кодировка StatusDescription в HttpResponse - PullRequest
2 голосов
/ 07 мая 2011

Я использую C # и пишу HttpResponse StatusDescription сообщение об ошибке в случае возникновения исключения. Внутренний я использую другой сервис, который, к сожалению, возвращает описания ошибок на русском языке. И эти русские сообщения об ошибках я должен вернуть в HttpResponse StatusDescrition. Я использую кодировку UTF-8 и пишу так:

var message = exception.Message.Substring(0, Math.Min(exception.Message.Length, 512));
var encodedBytes = Encoding.UTF8.GetBytes(message);

response.StatusDescription = Encoding.UTF8.GetString(encodedBytes);

Но это не помогает. В Fiddler что-то не так с заключением:

HTTP / 1.1 500 Не удалось обновить бронирование. Сообщение об ошибке:

Что мне сделать, чтобы включить русские символы?

1 Ответ

3 голосов
/ 07 мая 2011

Нет, вы не используете кодировку UTF-8.Вы используете его для кодирования и декодирования строки перед ее использованием, поэтому этот шаг не имеет смысла.Ваш код делает то же самое, что и:

response.StatusDescription =
  exception.Message.Substring(0, Math.Min(exception.Message.Length, 512));

В любом случае, вы не можете использовать кодировку UTF-8 для заголовков HTTP, это просто текстВместо этого поместите сообщение об ошибке в тело ответа, так как вы можете указать для него кодировку.

...