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>
";
?> 展开
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>
";
?> 展开
1个回答
展开全部
一般是连接数据库的时候未设置编码,设置方法是,连接成功后执行一次:
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里数据能否正常显示.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询