如何停止HTML文本框中的特殊字符



我有下面的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>

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

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

你需要通过使用正确处理编码表单数据的服务器端代码来解决这个问题,而不是试图破解数据,这样数据就不会被编码。

任何可能用于服务器端编程的语言都会有库(或内置方法(来解决这个问题。

例如,当服务器端代码用JavaScript编写并使用Express.js框架时,这个关于读取表单数据的问题。它使用来自body-parse模块的urlencoded中间件对数据进行解码。

最新更新