PHP MYSQL特殊字符不显示好

时间:2013-11-23 13:35:30

标签: php mysql character-encoding

我有一个用UTF-8编码的PHP文件,如下所示:

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

在使用sql请求之前,我添加了这一行:

mysql_query("SET NAMES 'utf8'");

我的数据库在UTF-8和varchar列中编码latin_swedish_ci

结果如下图所示:

enter image description here

4 个答案:

答案 0 :(得分:0)

Chang代码到此

mysql_query("SET NAMES UTF8");

像这样保存文件

Save file like this

答案 1 :(得分:0)

这是由于您的列的排序规则/字符集不正确所致。即使您的数据库密钥集是UTF-8,列的字符集也优先。要处理日语中的特殊字符,您的列应设置为utf8_bin而不是latin_swedish_ci

答案 2 :(得分:0)

要遵循的一些步骤:

UTF8的元标记。

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

将PHP设置为使用UTF8。

mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');

对于MySql,您必须将表格转换为UTF8。

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci

同时运行:

 SET NAMES UTF8

作为建立连接后的第一个查询,它将您的数据库连接转换为UTF8。

答案 3 :(得分:0)

如果元标记中的html编码已经通过http标头发送,则会被忽略。

header('Content-Type: text/html; charset=utf-8');

从浏览器中检查它认为当前页面编码是什么:

  • Chrome:工具 - 编码
  • Firefox:查看 - 字符编码

MySQL应该只用“set names utf8”,表dada自动编码到mysql连接编码