【问题标题】:Decode Text from Request.InputStream in Asp.net C#在 Asp.net C# 中从 Request.InputStream 解码文本
【发布时间】:2017-06-09 10:36:45
【问题描述】:

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

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

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

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

谢谢你, 米格尔。

【问题讨论】:

  • 在 web.config 中,在 &lt;system.web&gt;...&lt;/system.web&gt; 下添加 &lt;globalization requestEncoding="utf-8" responseEncoding="utf-8" /&gt;。所有请求和响应都是 UTF-8 类型的。

标签: c# asp.net text encoding decoding


【解决方案1】:

您的值是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 方法发送表单时。这样一来,值已经被解码,因此您无需担心。

【讨论】:

  • 谢谢你,成功了!作为麻省理工学院的学生和超级智能的人,您可以为收到我的同意而感到自豪。
猜你喜欢
  • 1970-01-01
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
  • 1970-01-01
  • 2015-12-09
  • 2012-01-01
相关资源
最近更新 更多