这种乱码如何解决!!!我代码都贴出来:<?php
//require('common.inc.php');
//require('config.inc.php');
mysql_connect('localhost', 'root' ,'123456');
mysql_select_db("hxyjw_20100416");
mysql_query("SET NAMES GBK");//防止数据库交互时乱码
header('Content-Type:text/html;charset=gbk');$queryString = $_POST['queryString'] ;if(strlen($queryString) >0) {
$sql= "SELECT username FROM phpcms_member WHERE username LIKE '".$queryString."%'  LIMIT 0,15";
echo $sql;
$query = mysql_query($sql);
while ($result = mysql_fetch_array($query))
{
$value=$result['username'];
echo '<li onClick="fill(\''.$value.'\');">'.$value.'</li>';
}}
?>
htm:<!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>Ajax搜索功能</title>
<script type="text/javascript"  src="/js/jquery-1.3.1.js"></script>
<script type="text/javascript">
function lookup(inputString) {
if(inputString.length == 0) {
// Hide the suggestion box.
$('#suggestions').hide();
} else {
$.post("rpc.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
});
}
} // lookup
function fill(thisValue) {
$('#inputString').val(thisValue);
setTimeout("$('#suggestions').hide();", 200);
}
</script>
<style type="text/css">
body {
font-family: Helvetica;
font-size: 11px;
color: #000;
}
h3 {
margin: 0px;
padding: 0px;
}
.suggestionsBox {
position: relative;
left: 30px;
margin: 10px 0px 0px 0px;
width: 200px;
background-color: #212427;
-moz-border-radius: 7px;
-webkit-border-radius: 7px;
border: 2px solid #000;
color: #fff;
}
.suggestionList {
margin: 0px;
padding: 0px;
}
.suggestionList li {
margin: 0px 0px 3px 0px;
padding: 3px;
cursor: pointer;
}
.suggestionList li:hover {
background-color: #659CD8;
}
</style>
</head>
<body>
<div>
<form>
<div style="border: 1px solid #CCCCCC; border-radius: 20px 20px 20px 20px; margin: 2em auto 1em; max-width: 50px; min-width: 300px; max-height: 60px; min-height: 60px;">
<br/>
<div style="text-align: LEFT">&nbsp;搜索:<input type="text" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" /></div><div class="suggestionsBox" id="suggestions" style="display: none;">
<img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
<div class="suggestionList" id="autoSuggestionsList">
</div></div>
</div>
</form>
</div>
</body>
</html>乱码ajax

解决方案 »

  1.   


    ajax对中文处理,你最好做一下转换,因为编码的问题造成的
      

  2.   

    因为你有 header('Content-Type:text/html;charset=gbk');
    所以 ajax 会将返回的内容按 gbk 解释
    但是 ajax 总是以 utf-8 向外发送数据的
    因此你 $queryString = $_POST['queryString'];
    得到的是 utf-8 编码的数据,当你 echo $sql; 时,就将 utf-8 的内容当做 gbk 发出了,所以出现乱码
    为此你需要
    $queryString = iconv('utf-8', 'gbk', $_POST['queryString']);
    将 ajax 传来的数据转一下码
      

  3.   


    感谢 xuzuning  再一次解决我的问题!