在 Asp.net C# 中解码来自 Request.InputStream 的文本

Decode Text from Request.InputStream in Asp.net C#

我正在尝试从 HTML:

的隐藏输入中检索数据
<INPUT type="hidden" name="HIDDENQUESMINV" id="HIDDENQUESMINV" value="@@Mínimo">

当我在提交表单后尝试通过 Request.InputStrem 获取它的值时,我得到了这个文本:@@M%C3%ADnimo

我的 HTML 是 UTF-8,当我通过 F12 看到它时它很好,但是请求改变了格式。我试图对其进行解码,以更改请求的编码,但根本没有任何效果。我有点迷失了这个,我不想替换所有这些字符。

谢谢你, 米格尔.

您的值为 Percent encoded,因为这是通过 HTTP 协议传输所必需的。你 可以使用

对其进行解码
string decoded_value = Uri.UnescapeDataString(value_from_input_stream);

但是我想知道你为什么要从InputStream中读取值?简单地读取值要容易得多

string decoded_value = Request.Form["HIDDENQUESMINV"];

如果使用 POST 方法发送表单,或者

string decoded_value = Request.QueryString["HIDDENQUESMINV"];

当使用 GET 方法发送表单时。这样,值已经被解码,因此您无需担心。