很可能你没有使用相同的字符集(utf-8)无处不在因此你的数据在某个时刻会被搞乱。这取决于你在做什么,你就必须更改/添加以下点中的一个或多个(也许这是SET CHARSET
/mysql_set_charset
你忘了):
告诉MySQL使用UTF-8。要做到这一点,把它添加到你的我的。CNF:
collation_server = utf8_unicode_ci
character_set_server = utf8
与MySQL进行交互前,送出这两querys:
3210
,或者让打开连接后PHP这样做:
mysql_set_charset('utf8', $conn); // when using the mysql_-functions
mysqli::set_charset('utf8') // when using mysqli
集UTF-8作为数据库
CREATE DATABASE `my_db` DEFAULT CHARACTER SET 'utf8';
默认字符集为表做同样的:
CREATE TABLE `my_table` (
-- ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
假设客户端是一个浏览器,以utf-8和t的形式提供您的内容他正确的标题:
header('Content-type: text/html; charset=utf-8');
,真正做到确保浏览器的理解,加元标记:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
,最后但并非最不重要的,告诉浏览器使用utf-8提交表格
<form accept-charset="utf-8" ...>
检查什么样的目标表中的字段,您存储所有的字符串也有如下归类:\t utf8_general_ci –
这里是由cherset造成的问题来无论是在数据库中插入数据(应该是UTF-8 - 通用)和连接到数据库时设置的字符集。 MySQLi,PDO和mysql_ *都有连接时设置默认字符集的功能 –
另外,在执行任何查询之前,请尝试执行以下操作之一:SET NAMES utf8 –