Wie Sie bereits sagten, ist die Standardcodierung einer HTTP-POST-Anforderung ISO-8859-1. Andernfalls müssen Sie den Content-Type-Header betrachten, der dann wie Content-Type: application/x-www-form-urlencoded; charset=UTF-8
aussieht.
Sobald Sie die geposteten Daten in einem Byte-Array gelesen haben, können Sie diesen Puffer in einen String konvertieren (denken Sie daran, dass alle Strings in .NET UTF-16 sind). Es ist nur in diesem Moment, dass Sie die Codierung kennen müssen.
byte[] buffer = ReadFromRequestStream(...)
string data = Encoding
.GetEncoding("DETECTED ENCODING OR ISO-8859-1")
.GetString(buffer);
Und Ihre Frage zu beantworten:
Kann ich Unicode verwenden, um eine HTTP-Anforderung als Byte-Array gegeben zu entschlüsseln?
Ja, wenn Unicode diesen Byte-Array zu kodieren, verwendet wurde:
string data = Encoding.UTF8.GetString(buffer);
Entschuldigung, das sieht aus wie Code aus einer Webressource anfordern und die Antwort dekodieren. Ich denke, ich sollte meine Frage klären. Sie tun etwas mit UTF-8 dort ... Kann ich das nur verwenden, um eine HTTP-Anfrage zu dekodieren? –