可能重复:
如何选择外语mysql查询?
我无法在mysql表中的文本旁边存储像★
或♥
这样的字符,但我将排序规则更改为utf8-bin
,我现在可以存储它们,但当我检索文本时,它显示?
字符,有什么方法可以将这些字符与普通字符一起存储并检索它们吗?更改排序规则会影响搜索该文本的准确性吗?
您需要确保所有内容都在utf8:中
- 数据库
- 数据库连接(在建立连接后,类似于PDO/PHP中的
$db->exec('SET CHARACTER SET utf8');
) - 如果您正在使用php,那么您的php文档
- 您的html输出
我也遇到了同样的问题。在从数据库检索数据之前,您需要发出这些查询。
mysql_query("set character_set_server='utf8'");
mysql_query("set names 'utf8'");
在将HTML回显到网页之前,请将页面字符集设置为UTF-8。
header('Content-Type: text/html; charset=UTF-8');
尝试使用htmlenties()函数。它将把所有适用的字符编码到html实体中。
http://php.net/manual/en/function.htmlentities.php