当前位置:首页 » 数据仓库 » php显示数据库乱码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

php显示数据库乱码

发布时间: 2022-06-22 04:27:05

❶ php如何解决查询出来的数据是乱码问题

乱码一直是困扰PHP初学者的一个非常大的问题,现在总结下造成乱码的原因及解决方法:

一、HTML页面编码:meta http-equiv=content-type content=text/html; charset=utf-8 这里的编码要和数据库编码,及连接数据库编码;
二、文件在存储编码:比如文件inde.php,改变其存储编码为所需编码。只需用EditPlus等文本编辑软件 文件另存为,在编码中选择正确的编码(这点很多人都会忽略);

三、数据库编码:比如用的是phpmyadmin 选择数据库后,选择操作选项。下面有一个整理,这里面也要设置成统一的编码;

四、表编码:操作和第三点类似。这里就不重复了;
五、字段编码:在建表的建字段的时候,有个整理。如果内容有汉字,就一定要改成统一的编码;

六、连接数据库时mysql_select_db()后面,要加一句 mysql_query( set names utf8 );
七、 (刚遇到的)本地测试成功后的网站,传到网上去,会有乱码。可能会是在本地导出数据时没有选择正确的编码,所以才会在导入到web上后有乱码问题。

❷ 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');
mysql_query("set names 'utf8'"); //select 数据库之后加多这一句

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

确保三码合一就可以了..
第一个是数据库的字符集
第二个就是存进去的时候字符集
第三个就是显示的时候的字符集

这三个都有可能造成乱码;
第一个 举例是:如果你插入的时候用的是GB2312 ,但你表中的default charset是utf8 那么,就有可能乱码了.
第二种情况就是你插入正确 但你查询的时候以UTF8查询出来,但你在HTML页面里设置编码如果非UTF8那么也有可能造成乱码.

❹ php 添加语句数据库出现乱码

连接完数据库要mysql_query('SET
NAMES
GBK');
该PHP文件保存类型要为ANSI
数据库的连接形式什么的也要是gbk的
最后实在不行你就把插入到数据库中的数据执行一下转码iconv(“UTF-8″,”GBK”,$data);
再不行
哥也无语了

❺ PHP读取Access数据库 出乱码

access的中文版默认是GBK格式的,是无法改变字符类型的,所以用php读取的时候会乱码。
解决方法是:使用iconv转换
一、使用 iconv函数制作一个转码的自定义从GBK转到UTF-8的函数,如以下代码:
function enc($c){return iconv('gbk','utf-8',$c);}
二、为了写入数据库的编码是符合数据库需要的,所以我们还要制作一个从UTF-8转向GBK的函数:
function dec($c){return iconv('utf-8','gb2312',$c);}
制作好了转码函数,接下就是正常使用了。在从数据库里面调数据显示在页面的时候使用enc()函数,从页面提交数据到数据库时使用dec()函数,这样就可以很好的解决PHP使用UTF-8编码,ACCESS使用系统默认编码的问题了。

❻ php读取mysql中文数据出现乱码的解决方法

1.PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库了
解决方法:选择'UTF8'或者'gb2312',这样客户浏览器会自动选择并出现正确的中文显示。注意:'UTF8'或者'gb2312'都可以正确显示中文的。
2.数据库MySQL中的编码类型不正确。
解决方法:创建数据库的时候,MySQL
字符集选择'UTF8',MySQL
连接校对选择utf8_general_ci,这样创建的数据库用来存储中文肯定没有问题,
否则,你的中文首先在MySQL中就是乱码,更不要期望它会给你在PHP页面中显示正确。
3.与平时的脚本编辑环境有关。比如,有些内容是自己用word写的,有些是用记事本写的,有些用editplus、ultraplus等文本编辑器。有时候就直接在DW中写中文了,
解决方法:尽量用同一种编辑器。如果是拷贝来得既有的内容,建议用ultraplus中的编码转换功能把它转换成utf8或者gb2312。
到底转换成什么类型并不重要,关键要求你的PHP
WEB应用程序中的编码要一致就行。
4.编程访问
MySQL时,建议添加一行代码:mysql_query("SET
NAMES
'GBK'");

❼ PHP在显示数据库中的中文数据时显示乱码

其实,只要注意文件编写的时候编码、数据库的编码一般就不会有这个问题的,但是,比如你用DW(dwcs4貌似没有这个现象)打开文件,它会以默认的编码读取,一旦你保存了,那就完了,用EditPlus打开之后,右下角有编码提示,如果发现不对,另存为,覆盖一下,就可以了

❽ php查询数据库乱码

MySQL和PHP产生乱码的原因:◆MySQL数据库的默认编码是utf8,如果这与你的PHP页面编码不一致,会造成MySQL乱码;◆MySQL创建表,让你选择一个编码,这种编码与你的网页编码不一致,并能也可能造成MySQL乱码;◆MySQL创建表,添加字段,可以选择的编码,这种编码与你的网页编码不一致,也可能会造成MySQL乱码;◆用户提交页面的编码页显示的数据编码不一致,肯定会引起PHP页面乱码;◆BIG5代码页,如用户输入数据的页面,用户输入是gb2312,这将导致100%的PHP页面乱码;◆PHP页面字符集是不正确的;◆PHP连接到MySQL数据库语句指定的编码不正确的。

注:

很多人都持怀疑态度的MySQL版本不一致导致MySQL和PHP乱码相信看过这个节目,你会不会这么认为。通常你看到某些网站中的文字可能有几种编码,如果你看到中国传统的字符,它可能会BIG5编码,有可能是utf-8编码,GB码更容易,是的,编码的中国传统简体,繁体编码的简化字符,我们必须认识到这一点。如果你正在做一个简体编码的网页,编码为GB2312,香港和台湾的传统访问者提交的信息,它可能会导致乱码的解决方法:

网站为utf-8编码,因此可以兼容在世界上的所有字符。如果网站已在运行很长一段时间,有大量的旧数据不能改变简体中文设置,建议设置为GBK编码的页面,GBK和GB2312的区别就在于:GBK显示更多比GB2312简体中国传统要显示的字符代码,只能用GBK字符。 MySQL和PHP产生乱码的了解很清楚的原因,那么解决的办法是不困难的。

MySQL和PHP乱码的解决方法:

如果你安装MySQL的编码不能改变的,我的很多朋友购买虚拟主机建立网站,无权更改MySQL的安装编码,我们可以跳过,因为只要后面的步聚是正确的,同样作为解决垃圾问题。

PHP入门网 - 常见问题解答

❾ php中为什么插入数据库的中文变成乱码

请将数据库的编码,表的编码以及字段的编码与网页代码的编码保持一致。
另外注意文件本身的编码与html代码头meta中的编码说明保持一致。
那你看看是不是在连接数据库的时候采用了utf8格式,语法如mysql_query('set
names
utf8');

❿ php显示数据库里的中文乱码.。ps:数据库和php显示都设置了utf8,为什么还会显示乱码求解答!!

原因:
这个是因为你的浏览默认解析编码不是 UTF-8,这种情况浏览器他不知道你的文字要显示 什么编码。
解决方案:
要么设置浏览器默认编码为 UTF-8
在输出打印前,先输出 <meta charset="utf-8">来告诉浏览器你想要使用的编码方式。
栗子:

echo '<meta charset="utf-8">';//将这行放到第一行输出

echo "<tr><><tr/>";//