phpget数据库乱码 php设置数据库编码格式

PHP mysql 如何将从数据中读入的中文乱码转换成中文字符?要解决乱码首先需要知道出现乱码的原因:
一、PHP+MySQL出现中文乱码的原因 。
1. MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码 。
2. 使用MYSQL中创建表、或者选择字段时设置的类型不是utf8,而网页编码不是utf8,也可能造成MYSQL中文乱码.
3. PHP页面的字符集与数据库的编码不一致 。
4. PHP连接MYSQL数据库phpget数据库乱码,操作是设定的语句指定的编码和页面编码phpget数据库乱码,PHP页面编码不一致 。
5. 用户提交的HTML页面编码 , 和显示数据的页面编码不一致 ,就肯定会造成PHP页面乱码.
二、解决中文乱码phpget数据库乱码:
1. 网页编码设置 。一般在HTML代码中的文件头html中加入属性:
meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″
保证,网页是"utf-8"编码 。
2. PHP代码设置 。在php代码的开始部分加入以下代码:
header(”Content-type: text/html;charset=utf-8″);
且要求保存的文件编码方式是utf-8,这样就保证phpget数据库乱码了该文件也是utf-8编码 。
【phpget数据库乱码 php设置数据库编码格式】3. 数据库中表的字段中存储中文的部分,要设置为utf8_general_ci类型 。
4.PHP在连接数据库操作时,要设置操作的字段类型为utf8,设置方法如下:
mysql_connect(’localhost’,'user’,'password’);mysql_select_db(’db’);mysql_query(”set names utf8;”); //**设置字符集***
php数据库中文乱码是怎么造成的?确保三码合一就可以phpget数据库乱码了..
第一个是数据库phpget数据库乱码的字符集
第二个就是存进去的时候字符集
第三个就是显示的时候的字符集
这三个都有可能造成乱码;
第一个 举例是:如果phpget数据库乱码你插入的时候用的是GB2312 ,但phpget数据库乱码你表中的default charset是utf8 那么,就有可能乱码了.
第二种情况就是phpget数据库乱码你插入正确但你查询的时候以UTF8查询出来,但你在HTML页面里设置编码如果非UTF8那么也有可能造成乱码.
有关PHP 数据库乱码的问题按以下步骤检查处理 。
(1)HTML编码指定是否正确phpget数据库乱码?检查head段中是否包含以下
meta
http-equiv="Content-type"
content="text/html;
charset=utf-8"
/
(2)检查HTML文件本身phpget数据库乱码的编码有无问题 。
(3)查询数据库之前设置编码 。
$sql
=
"set
names
utf8";
mysql_query($sql,$local_conn);
(4)检查数据库编码及数据表及字段编码是否均为UTF8 。注意phpget数据库乱码 , 数据库编码及表编码及字段编码不是一个概念 。
用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 。假如页面申明的编码与数据库内部编码一致可以不设定连接编码 。
事实上MYSQL配置文件my.ini中定义了2个默认编码,分别是[client]里的default-character-set和[mysqld]里的default-character-set来分别设定默认时候客户端连接和数据库内部所采用的编码 。上面指定的编码其实是MYSQL客户端连接服务器时候的命令行参数character_set_client,来告诉MYSQL服务器接受到的客户端数据是什么编码的,而不是采用默认编码 。

推荐阅读