已有40人关注
数据库编码配置问题
发表在PHP图书答疑 2009-06-02
是否精华
版块置顶:
我运行了php网络编程自学手册mr/14/sl/03程序,结果为:

 id   bookname   price   f_time   type  
 1  php完全手册  65.00  2007-10-11  php 
 2  php入门与精通  53.00  2007-11-12  php 
 3  asp开发技术大全  73.00  2007-03-03  asp 
 4  ASP程序开发范例宝典  80.00  2006-07-15  asp 
 5  PHP程序开发范例宝典  89.00  2007-10-01  php 
 6  ASP.Net程序开发范例宝典  89.00  2007-03-03  net 

我根据书中方法编写了一个小程序但无法显示汉字,出现乱码,代码为:

mysql_select_db("book");
mysql_query("set names gb2312");
$result = mysql_query("select * from admin",$conn);
echo "<tr>";
while($field = mysql_fetch_field($result))
{
echo "<td>&nbsp;".$field->name."&nbsp;</td>";
}
?>
</tr>
<?php
while ($rows = mysql_fetch_row($result))
{
echo "<tr>";
for($i = 0;$i < count($rows);$i++)
echo "<td>&nbsp;".$rows[$i]."&nbsp;</td>";
echo "</tr>";
}

?>
结果为:
 username   password  
 jianpo   jianpo  
 ?¨??   ?¨??  
为什么两个程序有如此区别?
请问如何解决乱码问题,我的程序有问题吗?请给予帮助。
谢谢!
分享到:
精彩评论 6
346827366
学分:0 LV1
2009-06-03
沙发
您好:

   看程序代码没有问题。

   应该是你数据库的编码格式的问题,看一下你数据库中的数据使用的是什么编码。

   在数据库中打开数据是否是乱码?
helloboy
学分:0 LV1
2009-06-03
板凳
我不知道怎么查看数据库编码但我的MySQL数据库没有出现乱码,只是运行了以上程序之后数据库中有乱码现象,在浏览器中查看有乱码现象,怎么回事呢?
急!
346827366
学分:0 LV1
2009-06-04
地板
你的数据库是使用什么工具创建的,

你通过什么工具操作你的数据库。

能否将你的数据库、数据表创建语句发上来看一下
helloboy
学分:0 LV1
2009-06-04
4L
我没有使用phpmyadmin图形化工具,我是分别下载了MySQL、php、apache然后安装了apache和MySQL。解压缩了php。
我通过MySQL客户端直接使用sql语句操作MySQL。如:create database book;等,当然我无法直接在MySQL客户端直接输入中文,我是通过记事本创建sql文件应用source语句实现输入中文的。效果还可以。
另一方面,我是通过php语言操作数据库,就像前面编写的php程序一样,但出现了乱码。不但在浏览器中出现了乱码,在数据库客户端通过select * from book;语句操作数据库时,结果也出现了乱码。无法正常显示汉字。
我直接在MySQL客户端创建数据库、表的语句如下:

create database book;

use book;

create table admin(
username varchar(20) not null,
password varchar(20) not null,
primary key (username)
) type=myisam;

create table guestbook(
id smallint(5) not null auto_increment,
name varchar(20) not null,
content text not null,
tel varchar(30) default null,
time datetime not null,
replycontent text,
primary key (id)
)engine=myisam auto_increment=3;

通过记事本载入的方法也可。

346827366
学分:0 LV1
2009-06-05
5L
问题应该就是出在您创建的数据库中,在数据库中您没有指定字符集。

估计您在安装数据库时,指定的默认字符集不是gb2312,而您在编写程序时,以gb2312的格式进行输出,这样就导致您从数据库中输出的数据编码格式不匹配,从而出现乱码。

建议您安装一个MySQl数据库的图形化管理工具,这样便于您对数据库、数据表的创建、管理和修改。
helloboy
学分:0 LV1
2009-06-05
6L
我没有尝试过使用数据库的图形化管理工具,或担心不习惯,请问在不使用图形化管理工具时如何配置MySQL编码?在安装MySQL数据库时初始设置是默认的,好像是Latin1什么的,请问乱码是不是与这有关系?
谢谢!
首页上一页 1 下一页尾页 6 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照