mysql传入utf_8乱码_MySQL中utf8_unicode_ci乱码的问题

存进去的全是问号,类似下面这样。

b217132c043b7c20c9e5db3db2fc44af.png

当时因为页面显示正常(全部使用utf8编码,语言是php,查询之前也有加编码设置),就没太在意!

这次更好服务器后,页面的输出就全部是问号了,不明白原因,求指教!

试过的方法有:

在查询之前设置

mysql_query(“set names ‘utf8′”);

mysql_query(“set character_set_client=utf8”);

mysql_query(“set character_set_results=utf8”);

你可以使用phpmyadmin看看是不是存进去的真的是乱码。

服务器编码,客户端编码,传输过程中编码保持一致。

有时候在命令行连接mysql,中文会乱码,原因是命令行对utf8不支持

补充:如果有phpmyadmin中看到是乱码,就是你程序和数据库设置的问题了:

修改php.ini

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

default-character-set=utf8

命令行连接mysql乱码

SET NAMES GB2312

从你描述的情况来看很可能是新服务器上数据库字符集设置问题。

mysql_query("set names ‘utf8’")等同于:

set character_set_client=utf8;

set character_set_results=utf8;

set character_set_connection=utf8;

但是mysql在内部执行操作前会将连接字符集转换为内部操作字符集,顺序如下:

1.使用每个数据字段的CHARACTER SET设定值;

2.若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);

3.若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;(character_set_database)

4.若上述值不存在,则使用character_set_server设定值。

所以你可以将database和server字符集设置为utf8试一下,

参考文章:http://www.laruence.com/2008/01/05/12…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值