问题
I have a form that looks like this:
<form action="/assesment/savelist/" method="post">
<input type="hidden" name="owner" value="<?php echo $userid ?>" />
<input type="text" name="title" value="Question List Title" />
<textarea name="description"></textarea>
<input type="submit" />
</form>
In the description people will have to be able to use the £
character (among other non-allowed characters).
Is there anyway to convert these characters to something that is allowed before posting them to my PHP page?
Hi All, thanks for your comments so far.
If I do print_r($_POST) on my "savequestion" it outposts the postdata that gets sent to it from that form.
however, if there is a £ in any of the fields then that specific character doesnt get sent. For example if I was to post "sdfsdfs £ adasd" from that form all that would get sent is "sdfsdfs adasd"
the question is how do I convert the £ to something that I can send as post data from a HTML form.
回答1:
WIN!
The solution is to add accept-charset="utf-8" to the form tag.
I didnt have the option to add this to the header of the page but adding it to the form tag solved all my issues. Big shout out to @deceze for posting a link to this website http://kunststube.net/frontback/
回答2:
Browsers will automatically encode data when it is submitted via the standard form submit mechanism.
PHP will automatically decode data when it populates $_POST/GET/REQUEST
.
You don't need to do anything at that stage.
You might need to encode the data before inserting it into a database / some HTML / an email / a URI / some other data format, but that would depend on what you are doing with the data.
回答3:
Browsers will 'automatically' "encode" <> data when it is submitted via the standard form submit mechanism.
来源:https://stackoverflow.com/questions/11886954/how-to-post-special-reserved-characters-from-html-forms-to-php-pages