我在一个视图中生成这个:
<form method="post">
<input type="hidden"
name="test"
value="<?=htmlentities('<>"&ščé', ENT_QUOTES, 'UTF-8')?>">
<input type="submit>
</form>
现在,在处理表单中的数据时我应该这样做吗?
$decodedTest = html_entity_decode($_POST['test'], ENT_QUOTES, 'UTF-8');
我认为这应该没问题:
$decodedTest = $_POST['test'];
但我还没有找到对此的参考。
编辑:我已经打印了发布的值,test
并且我看到该值未编码。我不知道我是否可以依靠这种行为以及为什么。我问的是操作理论。如果我查看原始发布请求,我可以看到发布数据是 urlencoded(我猜这是与 htmlentities 不同的编码类型)。这是否意味着客户端必须在发送请求之前执行一些重新编码。(客户端)浏览器在发送之前是否将输入值以编码形式或解码形式存储在内存中?(我已经知道 php 会自动解码请求中的 urlencoded 数据,因此这部分对我来说相当清楚)。