我试图用PHP将♥插入MySQL表.它来自输入字段.
表的字符集是utf8_general_ci,在PHP中我mysql_query("SET NAMES 'utf8'");在连接后立即使用.
但♥只是变成'?' 插入时
我也尝试从phpMyAdmin插入♥到表中,但它返回此错误:
Warning: #1366 Incorrect string value: '\xE2\x99\xA5' for column 'subject' at row 1
Run Code Online (Sandbox Code Playgroud)
结果也是'?' 而不是♥.
有什么原因可以解释这个问题?
Ome*_*esh 23
这是因为在表的列上定义了不兼容的字符集和排序规则.
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8;
Run Code Online (Sandbox Code Playgroud)
要么
ALTER TABLE table_name MODIFY col VARCHAR(255) CHARACTER SET utf8;
Run Code Online (Sandbox Code Playgroud)