在输入名称属性中使用HTML实体

Because I am lazy, I want to name a bunch of inputs using their scientific units so that I can later run a foreach() loop and use the array key as the parameter label.

<?php print_r($_POST) ?>
<form method="post" action="">
    <input type="text" name="param[&deg;]" value="<?php $_POST['param']['&deg;'] ?>"/>
    <input type="submit" value="submit"/>
</form>

But alas, &deg; changes to ° automatically, which to me is unexpected behavior. Who is responsible for this change and is this part of some standard? Is there a way to ensure that the array key remains the same?

The &deg; notation is replaced by its defined meaning, the DEGREE SIGN “°”, by a web browser, or other HTML client, when parsing an HTML document. This is a defined and required process according to all HTML specifications.

If you want the literal string &deg; to appear in parsed HTML content, you need to write it e.g. as &amp;deg;. But that string is not a scientific unit; it is just an HTML notation that may be used when you cannot or do not wish to type “°” directly.