从 ContentEditable 元素输出 UTF-8
Outputting UTF-8 from ContentEditable Element
在一个表单中,我有一个 contenteditable
div
。当 div
失去焦点时,其内容(包括 HTML)将转移到隐藏文本 input
。这是简化的 HTML:
<div contenteditable id="editable"></div>
<input class="hidden" id="content" />
此 content
字段的内容已上传到数据库,稍后用于博客。问题是 contenteditable
div
或 input
本身似乎将其内容编码为 ASCII 而不是 UTF-8,导致我的数据库中出现无法识别的字符(例如“ð “ 代替 ””)。
我已将以下 PHP header 信息添加到我的表单页面的顶部:
header("Content-type: text/html; charset=utf-8");
以及网站每个页面的 head
部分中的以下内容:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我还使用 PHP 函数来 "utf8ize" 所有 $_POST
ed 字段。
...无济于事。
请检查您的 .html 文件中的编码。您可以在 "Encoding"
下通过 Notepad++ 找到它
为了在您的数据库中保存表情符号,您的数据库字符集应为 utf8mb4
。
因此,您必须先更改数据库排序规则。
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;
那么您将不得不更改现有表的字符集
ALTER TABLE `Tablename` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
在一个表单中,我有一个 contenteditable
div
。当 div
失去焦点时,其内容(包括 HTML)将转移到隐藏文本 input
。这是简化的 HTML:
<div contenteditable id="editable"></div>
<input class="hidden" id="content" />
此 content
字段的内容已上传到数据库,稍后用于博客。问题是 contenteditable
div
或 input
本身似乎将其内容编码为 ASCII 而不是 UTF-8,导致我的数据库中出现无法识别的字符(例如“ð “ 代替 ””)。
我已将以下 PHP header 信息添加到我的表单页面的顶部:
header("Content-type: text/html; charset=utf-8");
以及网站每个页面的 head
部分中的以下内容:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我还使用 PHP 函数来 "utf8ize" 所有 $_POST
ed 字段。
...无济于事。
请检查您的 .html 文件中的编码。您可以在 "Encoding"
下通过 Notepad++ 找到它为了在您的数据库中保存表情符号,您的数据库字符集应为 utf8mb4
。
因此,您必须先更改数据库排序规则。
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;
那么您将不得不更改现有表的字符集
ALTER TABLE `Tablename` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin