【问题标题】:Cannot insert ♥ character in MySQL table无法在 MySQL 表中插入 ♥ 字符
【发布时间】:2012-09-05 08:52:04
【问题描述】:

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

结果也是'?'而不是♥。

对造成这种情况的原因有什么想法吗?

【问题讨论】:

标签: php mysql


【解决方案1】:

这是因为在表的列上定义的 character set and collation 不兼容。

尝试将您的表或列的changing character set 改为UTF8

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8;

ALTER TABLE table_name MODIFY col VARCHAR(255) CHARACTER SET utf8; 

【讨论】:

  • 哦!我只是更改了表格的字符集,而不是列...将列更改为 utf8,现在一切正常!谢谢!
【解决方案2】:

试试这个:

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

在你的 php 文件中设置:

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

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

【讨论】:

  • default_charset 和元标记不起作用,因为我看到了“?”在 phpMyAdmin 中。
  • 比尝试通过ini_set()设置字符编码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-12
  • 2012-10-17
  • 2017-07-02
  • 2011-07-11
  • 2023-03-09
  • 2016-02-29
  • 1970-01-01
相关资源
最近更新 更多