如何将♥☆等字符存储到DB?

Yet*_*eti 0 php mysql utf-8 character-encoding latin1

上一期 - 无法存储非英文字符:

如何存储非英文字符?

这是通过使用UTF8修复的.但今天意识到像这样的符号??没有正确存储.他们被转换为像♥☆.

怎么解决这个问题?

Car*_*rum 12

在我看来,它们正确存储,但是当你读出它们时,你并没有正确地解释它们. ?并将?以UTF-8编码结束为多字节字符.我敢打赌,如果你去查找多字节编码,你会看到它是一样的单字节编码♥☆分别.

编辑:添加详细信息.

正如您在下表中所看到的,将UTF-8字符解释为将它们编码为Windows Latin-1,可以得到您所看到的结果.

UTF-8 character      Hex
?                    e2 99 a5
?                    e2 98 86

Windows Latin-1      Hex
â                    e2
™                    99
¥                    a5
˜                    98
†                    86
Run Code Online (Sandbox Code Playgroud)

  • 这与PHP没有关系.在您的HTML中,您必须提供UTF-8字符集. (2认同)