Как вы сказали, кодировка по умолчанию HTTP POST-запроса по умолчанию - ISO-8859-1. В противном случае вам нужно посмотреть заголовок Content-Type, который может выглядеть как Content-Type: application/x-www-form-urlencoded; charset=UTF-8
.
После того, как вы прочитали опубликованные данные в массив байтов, вы можете решить преобразовать этот буфер в строку (помните, что все строки в .NET являются UTF-16). Только в тот момент вам нужно знать кодировку.
byte[] buffer = ReadFromRequestStream(...)
string data = Encoding
.GetEncoding("DETECTED ENCODING OR ISO-8859-1")
.GetString(buffer);
И ответить на ваш вопрос:
Умею использовать Unicode для декодирования запроса HTTP заданный как массив байтов?
Да, если Юникод используется для кодирования байтового массива:
string data = Encoding.UTF8.GetString(buffer);
К сожалению, это выглядит как код для запроса с веб-ресурса и декодировать ответ. Думаю, я должен уточнить свой вопрос. Вы делаете что-то с UTF-8 там ... Могу ли я просто использовать это для декодирования HTTP-запроса? –