php数据库字符集不对 php数据库语句

php数据库中文乱码是怎么造成的?确保三码合一就可以了..
第一个是数据库的字符集
第二个就是存进去的时候字符集
第三个就是显示的时候的字符集
这三个都有可能造成乱码;
第一个 举例是:如果你插入的时候用的是GB2312 ,但你表中的default charset是utf8 那么,就有可能乱码了.
第二种情况就是你插入正确但你查询的时候以UTF8查询出来,但你在HTML页面里设置编码如果非UTF8那么也有可能造成乱码.
php数据库显示乱码~~~怎么办~~~这个可能是你在安装环境的时候出现php数据库字符集不对了问题php数据库字符集不对,在安装mysql的时候php数据库字符集不对,数据库默认的不是gb2312,是西欧字符,建议你重新安装数据库,或是使用wampsever集成安装环境 , 默认数据库是utf8的,只要你建的数据库整理为utf8
网页文件也保存为utf8的
(不要bom头的那种)以后写php就很少出现问题啦 。要是在php文件的最上面一行再加上这么一句代码 , ?php
header("Content-Type:text/html;
charset=utf-8");?,那出现问题的几率就更小了 。
为什么 数据库提取中文是乱码?从后台读取数据时,通常会出现乱码情况,比如“汉字”变成“?”等 , 造成这种情况的原因通常是编码设置不对 , 解决方法如下:
第一种方法:在php中添加如下代码,将编码格式设为“utf-8”,代码如下:
header("Content-Type: text/html; charset=UTF-8");
第二种方法:在php中添加另外一行代码,同样用来转码,代码如下:
$conn = mysqli_connect($servername, $username, $password, $mysqlname);
$conn-query("SET NAMES utf8");
该种情况是先创建链接 , 之后再转码 。
另外,在使用数据库时,直接手动(非代码)建表,通常会在表中输入汉字时,浏览时无法显示或显示为“?”,造成这种情况的原因也是编码问题 , 解决方案如下:
在建表或建库时,表和库的编码格式一定要统一,设置成:“utf8_general_ci” , 如下图:
PHP显示MySQL数据乱码,字符集设置都是UTF8,数据库也是UTF8,一直找不到问题在哪里,代码见详细 , 求大神php mysql的utf-8中文乱码问题的解决方法
问题汇总:
1.mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码.
2.MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
3.MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
4.用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码.
5.如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.
6.PHP页面字符集不正确.
7.PHP连接MYSQL数据库语句指定的编码不正确.
使用mysql php产生乱码的原因都了解得很清楚了,那么解决就不困难了.
针对不同问题的解决方法:
1.mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码.
修改数据库编码,如果是数据库编码不正确,可以在phpmyadmin 执行如下命令:
Alter DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将test数据库的编码设为utf8.
2.MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
修改表的编码:
Alter TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将一个表category的编码改为utf8.
3.MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
修改字段的编码:
Alter TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是将test表中 dd的字段编码改为utf8.
4.用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码.
如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可.
5.如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.
这种情况也是修改页面charset即可.
6.PHP页面字符集不正确.
为了避免PHP页面乱码的发生,PHP页面开始第一句
header("content-type:text/html; charset=utf-8");
//强行指定页面的编码,以避免乱码
7.PHP连接MYSQL数据库语句指定的编码不正确.
在连接数据库的语句中.
mysql_connect('localhost','user','password');
mysql_select_db('my_db');
【php数据库字符集不对 php数据库语句】mysql_query("set names 'utf8'"); //select 数据库之后加多这一句
myql和php的字符集的问题,在所有都是utf8的时候还是会出错 存取都正常 , 但是phpmyadmin和终端不正常Set Names encoding-type 是必须php数据库字符集不对的 。不论是工具软件还是phpmyadmin,他们都内置php数据库字符集不对了这个方法在每次数据库连接时 。
encoding-type应该和php数据库字符集不对你的客户端使用的编码一致 。例如,你的网页是utf-8,那么set names utf-8,如果你的网页是gbk,那么就set names gbk(php数据库字符集不对我没用过gbk)
它的意义是告诉mysql,我提交的数据是经过该方式编码的,请用相同的方式解码 。
如果不追求细节的话(细节太多了,我也没法儿都写出来) , 你应该这样做:
1. 创建数据库时应该将数据库的编码格式设置为utf8_general_ci
2. PHP每次连接数据库后发送SET NAMES UTF8命令
3. 你的页面的meta content type要设置encoding type utf-8
4. 你的PHP源文件应该保存为utf-8编码格式如果以上都做到了,那么不论你用哪种方式访问数据库都应该看到相同的结果 。
php对字符串转换编码后,在不同浏览器里面显示的为何不一样,有的是乱码?求良方~php数据库字符集不对你好 乱码问题分为好几种情况 大部分情况下是编码不统一造成的 以utf-8为例
1、网页格式(在浏览器页面单击 右键——编码—— utf-8 )
2、数据库字符集(在php数据库字符集不对你用到的数据库上点右键——数据库属性——选择utf8(UTF-8 Unicode)
3、数据库表问题(以mysql为例 选定你取数据的表 右键——设计表——选定你的字段看下方的字符集一栏是不是UTF-8)
4、取数据问题(在你的数据库连接文件中写入php数据库字符集不对:mysql_query("set names utf8");)
5、网页制作时错误(以dreamweaver为例php数据库字符集不对,打开你的页面php数据库字符集不对 , 单击最上面的修改——页面属性——标题/编码——在编码那一列选择UTF-8)
(注:以上问题调好后如果还有乱码 就把你的页面中文内容重新输入一遍)
关于php数据库字符集不对和php数据库语句的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读