9

我正在尝试使用 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

结果也是“?” 而不是♥。

关于是什么原因的任何想法?

4

2 回答 2

23

这是因为在表的列上定义的字符集和排序规则不兼容。

尝试将表或列的字符集更改UTF8为.

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8;

或者

ALTER TABLE table_name MODIFY col VARCHAR(255) CHARACTER SET utf8; 
于 2012-09-12T10:48:08.193 回答
0

尝试这个:

ini_set('default_charset', 'utf-8');

在您的 php 文件中并设置:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

并检查您的数据库以 整理到 utf8_general_ci

于 2012-09-12T10:48:08.757 回答