【问题标题】:How to stop special characters in HTML text box?如何停止 HTML 文本框中的特殊字符?
【发布时间】:2021-01-22 22:28:03
【问题描述】:

我有下面的 HTML 表单...如果我输入像 !或 ^ 或 £ 在密码文本框中,我的服务器会获得不同的字符,包括 %...如何在我的服务器中获得“完全相同”的密码字符...

如果我输入密码为 abc!£^hg^! ,我的服务器获取密码为 abc%21%C2%A3%5Ehg%5E%21

   <form autocomplete="off" method="POST" accept-charset="utf-8">
        <div>
            <label>Name:</label>
            <input type="text" name="name"/>
        </div>
        <div>
            <label>Password:</label>
            <input type="password" name="password"/>
        </div>
        <div>
            <input type="submit" value="Login"/>
        </div>
    </form>

【问题讨论】:

  • 听起来您的服务器上存在编码配置问题。

标签: javascript html


【解决方案1】:

表单数据必须以某种方式进行编码,以便通过 HTTP 传输。

URL 编码是表单的默认值。在该格式中,某些字符使用percent encoding 进行编码。

您需要通过使用正确处理编码表单数据的服务器端代码来解决此问题,而不是尝试破解某些东西以使数据不被编码。

您可能用于服务器端编程的任何语言都将具有用于解决此问题的库(或内置方法)。

this question 为例,当服务器端代码用 JavaScript 编写并使用 Express.js 框架时读取表单数据。它使用来自body-parse 模块的urlencoded 中间件来解码数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多