I have this form:
<form method="post" enctype="multipart/form-data" accept-charset="UTF-8">
But when I submit an é character, it turns it into é.
Why doesn't this work? Yes, the MySQL database has all the character-sets set up correctly. (Database, tables.) If I manually put it in the database with Navicat it shows up fine on the webpage.
Also, I have tried the metatag, setting the content-type header, without success.
In your HTML, add this meta tag:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Also add this PHP header at top of the script:
header("Content-Type: text/html;charset=UTF-8");
[EDIT]:
One more tip is to save the file as UTF-8 without BOM
encoding. You can use Notepad++ or any decent editor to do that.
Ensure you have set your connection collation to utf8
:
SET NAMES utf8
Had the exactly same problem as mentioned above, tried everything mentioned.
Try deleting
enctype="multipart/form-data"
and adding
accept-charset="utf-8"
from the tag. This was the solution in my case.
there are a couple of reasons for the wrong encoding, there is some help:
http://www.sebastianviereck.de/en/php-mysql-special-characters-umlauts-utf8-iso/
Add only accept-charset="character_set" in form. It is all!
accept-charset="character_set"