从Asp.net C#中的Request.InputStream解码文本

时间:2017-06-09 10:36:45

标签: c# asp.net text encoding decoding

我正在尝试从HTML的隐藏输入中检索数据:

<INPUT type="hidden" name="HIDDENQUESMINV" id="HIDDENQUESMINV" value="@@Mínimo">

当我在提交表单后尝试通过Request.InputStrem获取其值时,我会收到以下文本:@@ M%C3%ADnimo

我的HTML是UTF-8,当我在F12中看到它时它很好,但是请求改变了格式。我试图解码它,改变请求的编码但没有任何作用。我有点迷失了,我不想替换所有这些角色。

谢谢你, 米格尔。

1 个答案:

答案 0 :(得分:0)

您的值为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方法发送表单时。这样,值已经被解码,因此您不必担心它。