Curl Post UTF8刻度线符号 - 请求正文

时间:2017-03-06 21:49:54

标签: php curl

当我查看我填写的表单的HTML源代码时,我得到:

<input name="utf8" type="hidden" value="&#x2713;" />

但是,当我提交表单(在每个名称和值上调用urlencode)时,浏览器的请求正文显示:

utf8=%E2%9C%93

我认为两者都解码为相同的刻度字符,但为什么它们不同?我要求自动测试。

1 个答案:

答案 0 :(得分:1)

输入值是字符的html entity表示。在这种情况下,它在浏览器中具有相同的效果,就像您将实际字符写为值:

<input name="utf8" type="hidden" value="✓" />

服务器已经接受了unicode字符作为POST字段,而不是实体字符串。

在角色上运行urlencode()后,您将获得其编码值,即%E2%9C%93

如果你没有在字段上运行urlencode(),你将得到实际的字符:

array(1) { ["utf8"]=> string(3) "✓" }