从ContentEditable元素输出UTF-8

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.

  1. for that reason, you will have to change database collation first.

    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;

  2. 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"