Inside a form, I have a contenteditable
div
. When the div
loses focus, its contents are transferred (HTML included) to a hidden text input
. Here is the simplified HTML:
<div contenteditable id="editable"></div>
<input class="hidden" id="content" />
This content
field has its contents uploaded to a database, later to be used on a blog. The problem is that the either the contenteditable
div
or the input
itself appear to encode their contents as ASCII rather than UTF-8, resulting in unrecognised characters in my database (such as "ð¡" instead of "
In order to save emojis in your database, your database charset should be utf8mb4
.
for that reason, you will have to change database collation first.
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;
then you will have to change the existing tables charset
ALTER TABLE `Tablename` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
Please Check the Encoding from your .html file. You can find it out over Notepad++ under "Encoding"