我有一个包含西班牙语字符的数据库.填充数据库我从客户端页面获取具有字符编码= UTF-8的值.当我在MysqL数据库中插入值时,行包含更改的数据.例如,如果我插入’México’,数据库中的条目是’México’.这有什么影响,当我在指定’México’的表上进行查询时,我得不到任何结果.我的问题是你如何在mysql数据库中插入西班牙语或其他拉丁语口音?我已经尝试了所有的整理,htmlentities()等但没有任何作品!
在进行mySQL查询时,我检查了正在发送的数据,它的格式是’México’,但是当我通过PHPmyadmin看到表条目时,它被改变了!
解决方法:
将MysqL数据库/表/列编码更改为UTF-8(并将排序规则设置为兼容值).
ALTER TABLE mytable CONVERT TO CHaraCTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE mytable
MODIFY country CHAR(50)
CHaraCTER SET utf8 COLLATE utf8_general_ci;
同时在连接时指定PHP端的char集.
MysqL_set_charset('utf8',$conn);
查看this article以获取更多信息,以及用于批量更改数据库中每个表/列的脚本.