添加数据,结果显示为“??” 我是新手,通过phpmyadmin建了一个表,字段名为uname ,类型为varchar(50) 我添加数据“张三” 但是显示为“??”,请问这是怎么回事? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 编码问题存储的时候用 mysql_query('set names utf8');把 utf8 换成你对应的编码 我存储的时候用的utf8_bin,从phpmyadmin里看到是正常的,但是我用页面显示出来的时候,还是“??”这是为什么? phpmyadmin也是采用php读取数据的试试iconv 如果你的数据库的建立是在 phpmyadmin 的编码之前建立的。那么你需要更改你每一个字段的编码属性。否则更改 phpmyadmin 的编码为中文之后,再建立数据库就可以了。我的原来问题和你一样。 字段的整理属性由latin1_swedish_ci 改为 gb2312_bin 就OK乐。中文才会出现。 我是该为了gb2312_bin ,但是还是没有出现哦,郁闷死了 1.插入/查询数据之前mysql_query("set names utf8");2.页面保证为utf-8(meta标签设置,或者php的header) 我页面有问题吗?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title></head><body><br><br><br><br><br><br><table width="500" border="1" align="center" cellpadding="0" cellspacing="0"> <tr> <td> </td> <td> </td> <td> </td> </tr> <? $myconn=mysql_connect("localhost","root",""); mysql_select_db("hupeng"); $strSql="select * from user"; $result=mysql_query($strSql,$myconn); while($row=mysql_fetch_array($result))//通过循环读取数据内容 {?> <tr> <td><? echo $row["uid"]?></td> <td><? echo $row["uname"]?></td> <td><? echo $row["uage"]?></td> </tr><?} //关闭对数据库的连接 mysql_close($myconn);?></table></body></html> 这是我的表结构 字段 类型 整理 属性 Null 默认 额外 操作 uid int(10) 否 auto_increment Browse distinct values 更改 删除 主键 唯一 索引 全文搜索 uname varchar(50) gb2312_bin 否 Browse distinct values 更改 删除 主键 唯一 索引 全文搜索 uage varchar(50) gb2312_bin 否 Browse distinct values 更改 删除 主键 唯一 索引 全文搜索 你的页面是gb2312,那么你从mysql那边要保证得到gb2312的数据,你的浏览器才读得懂得到的数据,才不会乱码。就好像你听不懂西班牙语,你就去请个西班牙语的翻译,你不可能去请个讲越南语的家伙来帮你翻译。怎么保证?在查询数据之前mysql_query("set names gb2312")一下,让mysql返回gb2312编码的数据。 请问,mysql_query("set names gb2312") 放在页面的那个位置? ...mysql_query("set names gb2312");$strSql="select * from user"; .... 应该是你的代码文件编码跟网页编码、数据库编码不一致造成的。比如数据库编码是UTF-8,那么以下3项有一个不是UTF-8都会出现乱码:1.代码文件编码类型UTF-8 //这点很容易被忽视2.PHP查询前执行mysql_query("set names utf8");3.网页指定编码: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 问题在这里啊 超简单,是因为你没有处理好字符集的问题新建数据库的时候把整理选择成utf8-general-ci你把下面这一句加到第一次查询前mysql_query("SET character_set_connection=gb2312, character_set_results=gb2312, character_set_client=binary");其中gb2312为网页的字符集 (很急!)还是用PHP编写发邮件的程序 寻求一个正则表达试 openssl_sign签名问题 请问在winxp或者win2k个人版本下如何配置php环境! 纯html语言代码,后缀php可以解析,后缀html显示不出来,为什么? Dreamver+Mysql+PHP学习天地 usort函数使用中的问题? OCI和ORA函数 关于PHP读取数组效率的问题 请教 预排序遍历树算法(非递归无限极分类算法) ,删除一个分支节点和它所有的子节点问题 工作忙~散分… PHP定时执行任务
试试iconv
否则更改 phpmyadmin 的编码为中文之后,再建立数据库就可以了。我的原来问题和你一样。
2.页面保证为utf-8(meta标签设置,或者php的header)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<br><br><br><br><br><br>
<table width="500" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<?
$myconn=mysql_connect("localhost","root","");
mysql_select_db("hupeng");
$strSql="select * from user";
$result=mysql_query($strSql,$myconn);
while($row=mysql_fetch_array($result))//通过循环读取数据内容
{
?>
<tr>
<td><? echo $row["uid"]?></td>
<td><? echo $row["uname"]?></td>
<td><? echo $row["uage"]?></td>
</tr>
<?
}
//关闭对数据库的连接
mysql_close($myconn);
?></table>
</body>
</html>
字段 类型 整理 属性 Null 默认 额外 操作
uid int(10) 否 auto_increment Browse distinct values 更改 删除 主键 唯一 索引 全文搜索
uname varchar(50) gb2312_bin 否 Browse distinct values 更改 删除 主键 唯一 索引 全文搜索
uage varchar(50) gb2312_bin 否 Browse distinct values 更改 删除 主键 唯一 索引 全文搜索
怎么保证?在查询数据之前mysql_query("set names gb2312")一下,让mysql返回gb2312编码的数据。
mysql_query("set names gb2312");
$strSql="select * from user";
....
比如数据库编码是UTF-8,那么以下3项有一个不是UTF-8都会出现乱码:1.代码文件编码类型UTF-8 //这点很容易被忽视
2.PHP查询前执行mysql_query("set names utf8");
3.网页指定编码:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
问题在这里啊
新建数据库的时候把整理选择成utf8-general-ci
你把下面这一句加到第一次查询前
mysql_query("SET character_set_connection=gb2312, character_set_results=gb2312, character_set_client=binary");
其中gb2312为网页的字符集