首页 文章

写入/检索特殊字符ⓄⒼק到数据库[复制]

提问于
浏览
0

这个问题在这里已有答案:

我有一个表单,需要接受特殊的字体字符并将它们写入数据库表 . 我相信编码是在页面/表单级别正确设置的,但是当字段写入数据库时,字符会更改为其他编码 . 其他SO答案似乎表明设置编码为UTF-8就是答案,我已经完成了 .

现在,如果我复制粘贴下面的字符,直接到数据库表,它会保持它们正常,如图所示 . 它只有当我从表单写入表或当我检索它以在网页中显示时 .

示例字符:ⓄⒼקร

网页设置为: <meta charset="utf-8">

表单标记包含属性: accept-charset="UTF-8"

在插入INSERT之前的Php: $_POST['tag']=utf8_encode($_POST['tag']);

我之前没有必要编写/编码那些类型的字体/特殊字符,所以我在这里做错了什么?

1 回答

  • 1

    Do not use the PHP utf8_encode() or utf8_decode() functions.

    尽管它们的名称很有说服力,但这些函数实际上做的是破坏UTF8文本 - 通过双重编码UTF8文本,或者通过将文本转换为ISO8859-1编码并用问号替换Latin-1范围之外的字符 .

    删除对 utf8_encode() 的调用,确保您的数据库表具有正确的编码( CHARACTER SET = utf8mb4 ),您应该没问题 .

相关问题