ビューでこれを生成します。
<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データを自動的にデコードすることはすでに知っているので、その部分はかなり明確です)。