php数据库传输乱码 php写入数据库中文乱码

用PHP从数据库中取出的中文是乱码,怎么处理能使中文正常显示?

数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如页面申明的编码与数据库内部编码一致可以不设定连接编码。

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站制作、容城网络推广、成都微信小程序、容城网络营销、容城企业策划、容城品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供容城建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

事实上MYSQL配置文件my.ini中定义了2个默认编码,分别是[client]里的default-character-set和[mysqld]里的default-character-set来分别设定默认时候客户端连接和数据库内部所采用的编码。上面指定的编码其实是MYSQL客户端连接服务器时候的命令行参数character_set_client,来告诉MYSQL服务器接受到的客户端数据是什么编码的,而不是采用默认编码。

转自:

php数据库中文乱码是怎么造成的?

确保三码合一就可以了..

第一个是数据库的字符集

第二个就是存进去的时候字符集

第三个就是显示的时候的字符集

这三个都有可能造成乱码;

第一个 举例是:如果你插入的时候用的是GB2312 ,但你表中的default charset是utf8 那么,就有可能乱码了.

第二种情况就是你插入正确 但你查询的时候以UTF8查询出来,但你在HTML页面里设置编码如果非UTF8那么也有可能造成乱码.

有关PHP 数据库乱码的问题

按以下步骤检查处理。

(1)HTML编码指定是否正确?检查head段中是否包含以下

meta

http-equiv="Content-type"

content="text/html;

charset=utf-8"

/

(2)检查HTML文件本身的编码有无问题。

(3)查询数据库之前设置编码。

$sql

=

"set

names

utf8";

mysql_query($sql,$local_conn);

(4)检查数据库编码及数据表及字段编码是否均为UTF8。注意,数据库编码及表编码及字段编码不是一个概念。

我PHP设置的是UTF-8,数据库设置的是UTF8-general-ci,从页面发送数据给数据库后数据库显示的是乱码是为啥

试试把下面类似语句放到连接语句之后

mysql_query("SET NAMES UTF8");

或 PDO

$dbh-exe("SET NAMES UTF8");

用 SET NAMES UTF8 校正一下连接编码

因为PHP 连接数据库的过程中会经过三次编码转换,比如输出的的时候

MySql Server(UTF-8) - PHP Connection( Latin1) - UTF8页面的Result(UTF-8) 这时两种编码不兼容则产生乱码。


名称栏目:php数据库传输乱码 php写入数据库中文乱码
文章起源:http://scyanting.com/article/doigsho.html