我阅读了一些文章,这些文章提倡在 php 中使用新的 ext/mysqli,因为它支持字符集。我目前使用 ext/mysql 并使用 SET NAMES UTF-8
来确保我的所有数据都存储为 utf-8。是不是 ext/mysql 中的字符集支持,还是我遗漏了更大的东西?
谢谢:)
最佳答案
SET NAMES UTF-8
并不意味着数据以 UTF-8 格式存储。这意味着数据以 UTF-8 格式从客户端接收,并以 UTF-8 格式提供给客户端。
存储编码是在创建 db/table/row 时设置的,例如
CREATE TABLE{
...
}CHARSET=utf8;
或
CREATE DATABASE DEFAULT CHARACTER SET utf8
阅读此处:Mysql: latin1-> utf8. Convert characters to their multibyte equivalents
2 里昂 mysql 运行得很好。
请再次检查表格和行的编码,例如通过 phpMyAdmin。请记住,将编码设置为数据库不会自动更改表的编码。如果未指定表编码,它仅用作默认值
关于php - ext/mysql 字符集支持 vs ext/mysqli 字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2122597/