php页面返回ajax中文值出现了显示乱码

第一个页面a.php部分代码<table><tr><td><select><optionvalue=''></option></select></td><td><inpu... 第一个页面
a.php部分代码
<table>
<tr>
<td><select><option value=''></option></select></td>
<td><input type=button onclick='calculate(this)' value='计算'></td>
<td></td>

</tr>

</table>

<script type="text/javascript">
function calculate(t){
var customerid = $(t).parent().prev().children('.sel_customer').val(); //获取id

$(t).parent().next().load("b.php?customerid="+customerid);

}

b.php部分代码
<?
$customerid=$_GET[customerid];
$operator=$_SESSION['UserID'];
$sql="select * from userinfo where id='".operator."'"; //注意:userinfo name字段为gb2312

$query = mysql_query($sql);
$res = mysql_fetch_assoc($query);
$name=$res[name];
echo $name; //这里输出的$name 乱码

$nowtime = date('Y-m-d H:i:s'); //记录当前时间

//调用系统exe文件运算,运算保存数据库

system("custvalue.exe $operator $customerid $nowtime");
//查询程序运行后的数据根据时间

$sql = "select * from custvalue where starttime='".$nowtime."'";
$query = mysql_query($sql);
$rs = mysql_fetch_assoc($query);
echo "
<table width=100% >
<tr align='center'>
<td width=148>".$rs['pastvalue']."</td>
<td width=148>".$rs['futurevalue']."</td>
<td width=148>".$rs['remark']."</td>
</tr>
</table>
";

?>
展开
 我来答
shfj520
推荐于2016-09-15
知道答主
回答量:20
采纳率:0%
帮助的人:19.2万
展开全部

一般是连接数据库的时候未设置编码,设置方法是,连接成功后执行一次:

SET NAMES UTF8;//把UTF8替换为你数据库的编码

项目编码是件很重要的事情,首先A.PHP 和B.PHP的编码保持一致,

其次是设置数据库的编码,注意是数据库的编码不是页面的编码,

最后HTML头的编码声明要与文件一致.

更多追问追答
追问
数据库的编码有两种gbk 和 gb2312
我设置过三种

header("Content-Type:text/html;charset=gbk");
mysql_query("set names 'gbk'");
$name= iconv("gb2312","gbk",$name);
结果返回出来的值还是乱码的
追答
GBK 涵盖GB2312所以无需单独设置或转换.数据库连接更无需发送header

问题估计出在你的数据库编码上,建议你去下载一个phpmyadmin去看看你的数据库里,数据库编码,数据表编码,字段编码三者是否一致,以及在phpmyadmin里数据能否正常显示.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式