Heim >Backend-Entwicklung >PHP-Tutorial >ajax乱码问题(仿百度搜索页面),在线求解答,大侠们有空速度帮忙

ajax乱码问题(仿百度搜索页面),在线求解答,大侠们有空速度帮忙

WBOY
WBOYOriginal
2016-06-23 14:21:09908Durchsuche

乱码 ajax

   这种乱码如何解决!!!我代码都贴出来:
<?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);}});}} // lookupfunction 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"> 搜索:<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="max-width:90%" alt="upArrow" /><div class="suggestionList" id="autoSuggestionsList"></div></div></div></form></div></body></html>



回复讨论(解决方案)

 有人吗  求帮忙看看,O(∩_∩)O谢谢

 有人吗  求帮忙看看,O(∩_∩)O谢谢

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

因为你有 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 传来的数据转一下码

因为你有 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 传来的数据转一下码

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn