写了一个php查询,但是就是传不出中文。
+展开
-HTML
<?php
header("content-Type: text/html; charset=gb2312");
$keyword=$_POST['keyword'];
if ($keyword=="")
die();
$conn=mysql_connect("localhost","root","××××××");
@mysql_select_db("phplearn") or die('sorry');
$sql="select * from suggest where title like '%“.$keyword.”%' order by id desc limit 5";
$result=mysql_query($sql);
echo ' <ul>';
while($row = mysql_fetch_array($result))
{
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.$row['title'].' <span>'.$keyword.' </span> </li>';
}
echo ' </ul>';
mysql_close();
?>
header("content-Type: text/html; charset=gb2312");
$keyword=$_POST['keyword'];
if ($keyword=="")
die();
$conn=mysql_connect("localhost","root","××××××");
@mysql_select_db("phplearn") or die('sorry');
$sql="select * from suggest where title like '%“.$keyword.”%' order by id desc limit 5";
$result=mysql_query($sql);
echo ' <ul>';
while($row = mysql_fetch_array($result))
{
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.$row['title'].' <span>'.$keyword.' </span> </li>';
}
echo ' </ul>';
mysql_close();
?>
我测试过header("content-type:text/xml;charset=gb2312");
$keyword=mb_convert_encoding(trim($_POST['keyword'].''), "gb2312", "UTF-8");
mysql_query('set names gb2312');
但是都不行,查询英文是没有问题的,就是中文不对,输入“我”,结果用的是“%u6211”,这样才导致查不出结果。
-----------------------------------------
superwmh
如果是用 AJAX 呼叫,輸出應該使用 UTF-8 才是,試試看輸出改用:
+展开
-PHP
header("content-type:text/xml;charset=utf-8");
while($row = mysql_fetch_array($result))
{
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($row['title'], "UTF-8", "gb2312").' <span>'.
mb_convert_encoding($keyword, "UTF-8", "gb2312").' </span> </li>';
}
while($row = mysql_fetch_array($result))
{
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($row['title'], "UTF-8", "gb2312").' <span>'.
mb_convert_encoding($keyword, "UTF-8", "gb2312").' </span> </li>';
}
masss
masss
+展开
-HTML
<?php
header("content-type:text/xml;charset=UTF-8");
$keyword=$_POST['keyword'];
if ($keyword=="")
die();
$conn=mysql_connect("localhost","root","******");
@mysql_select_db("phplearn") or die('sorry');
$sql="select * from suggest where title like '%".$keyword."%' order by id desc limit 5";
$result=mysql_query($sql);
echo ' <ul>';
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($row['title'], "UTF-8", "gb2312").' <span>'.
mb_convert_encoding($keyword, "UTF-8", "gb2312").' </span> </li>';
echo ' </ul>';
mysql_close();
?>
header("content-type:text/xml;charset=UTF-8");
$keyword=$_POST['keyword'];
if ($keyword=="")
die();
$conn=mysql_connect("localhost","root","******");
@mysql_select_db("phplearn") or die('sorry');
$sql="select * from suggest where title like '%".$keyword."%' order by id desc limit 5";
$result=mysql_query($sql);
echo ' <ul>';
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($row['title'], "UTF-8", "gb2312").' <span>'.
mb_convert_encoding($keyword, "UTF-8", "gb2312").' </span> </li>';
echo ' </ul>';
mysql_close();
?>
改成这样了还是不行哦,我是用的ajax,会不会是我的js的问题啊?但是我写了asp同样的查询没有问题
masss
masss
等级:
发表于:2008-10-15 09:25:113楼 得分:0
+展开
-HTML
<?php
$keyword=mb_convert_encoding($_POST['keyword'], "UTF-8", "gb2312");
if ($keyword=="")
die();
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($keyword, "gb2312", "UTF-8").' <span>'.
mb_convert_encoding($keyword, "gb2312", "UTF-8").' </span> </li>';
?>
$keyword=mb_convert_encoding($_POST['keyword'], "UTF-8", "gb2312");
if ($keyword=="")
die();
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($keyword, "gb2312", "UTF-8").' <span>'.
mb_convert_encoding($keyword, "gb2312", "UTF-8").' </span> </li>';
?>
去掉了查询,用上面的直接输出,还是显示不正确
showbo
要学习了.....さようなら
等级:
发表于:2008-10-15 09:25:384楼 得分:0
asp,asp.net在使用ajax发送数据时使用escape来编码,但是php需要用encodeURIComponent来编码,这样php才能使用mb_convert_encoding进行编码转换
昨天你下载的google代码里面没看我的js代码吗
masss
masss
等级:
发表于:2008-10-15 09:33:536楼 得分:0
+展开
这个是我的js -JavaScript
var j=-1;
var temp_str;
var $=function(node){
return document.getElementById(node);
}
var $$=function(node){
return document.getElementsByTagName(node);
}
function ajax_keyword(){
var xmlhttp;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4){
if (xmlhttp.status==200){
var data=xmlhttp.responseText;
$("suggest").innerHTML=data;
j=-1;
}
}
}
xmlhttp.open("post", "aa.php", true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send("keyword="+escape($("keyword").value));
}
function keyupdeal(e){
var keyc;
if(window.event){
keyc=e.keyCode;
}
else if(e.which){
keyc=e.which;
}
if(keyc!=40 && keyc!=38){
ajax_keyword();
temp_str=$("keyword").value;
}
}
function set_style(num){
for(var i=0;i <$$("li").length;i++){
var li_node=$$("li")[i];
li_node.className="";
}
if(j>=0 && j <$$("li").length){
var i_node=$$("li")[j];
$$("li")[j].className="select";
}
}
function mo(nodevalue){
j=nodevalue;
set_style(j);
}
function form_submit(){
if(j>=0 && j <$$("li").length){
$$("input")[0].value=$$("li")[j].childNodes[0].nodeValue;
}
document.search.submit();
}
function hide_suggest(){
var nodes=document.body.childNodes
for(var i=0;i if(nodes[i]!=$("keyword")){
$("suggest").innerHTML="";
}
}
}
function keydowndeal(e){
var keyc;
if(window.event){
keyc=e.keyCode;
}
else if(e.which){
keyc=e.which;
}
if(keyc==40 || keyc==38){
if(keyc==40){
if(j <$$("li").length){
j++;
if(j>=$$("li").length){
j=-1;
}
}
if(j>=$$("li").length){
j=-1;
}
}
if(keyc==38){
if(j>=0){
j--;
if(j <=-1){
j=$$("li").length;
}
}
else{
j=$$("li").length-1;
}
}
set_style(j);
if(j>=0 && j <$$("li").length){
$("keyword").value=$$("li")[j].childNodes[0].nodeValue;
}
else{
$("keyword").value=temp_str;
}
}
}
var temp_str;
var $=function(node){
return document.getElementById(node);
}
var $$=function(node){
return document.getElementsByTagName(node);
}
function ajax_keyword(){
var xmlhttp;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4){
if (xmlhttp.status==200){
var data=xmlhttp.responseText;
$("suggest").innerHTML=data;
j=-1;
}
}
}
xmlhttp.open("post", "aa.php", true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send("keyword="+escape($("keyword").value));
}
function keyupdeal(e){
var keyc;
if(window.event){
keyc=e.keyCode;
}
else if(e.which){
keyc=e.which;
}
if(keyc!=40 && keyc!=38){
ajax_keyword();
temp_str=$("keyword").value;
}
}
function set_style(num){
for(var i=0;i <$$("li").length;i++){
var li_node=$$("li")[i];
li_node.className="";
}
if(j>=0 && j <$$("li").length){
var i_node=$$("li")[j];
$$("li")[j].className="select";
}
}
function mo(nodevalue){
j=nodevalue;
set_style(j);
}
function form_submit(){
if(j>=0 && j <$$("li").length){
$$("input")[0].value=$$("li")[j].childNodes[0].nodeValue;
}
document.search.submit();
}
function hide_suggest(){
var nodes=document.body.childNodes
for(var i=0;i
$("suggest").innerHTML="";
}
}
}
function keydowndeal(e){
var keyc;
if(window.event){
keyc=e.keyCode;
}
else if(e.which){
keyc=e.which;
}
if(keyc==40 || keyc==38){
if(keyc==40){
if(j <$$("li").length){
j++;
if(j>=$$("li").length){
j=-1;
}
}
if(j>=$$("li").length){
j=-1;
}
}
if(keyc==38){
if(j>=0){
j--;
if(j <=-1){
j=$$("li").length;
}
}
else{
j=$$("li").length-1;
}
}
set_style(j);
if(j>=0 && j <$$("li").length){
$("keyword").value=$$("li")[j].childNodes[0].nodeValue;
}
else{
$("keyword").value=temp_str;
}
}
}
showbo
要学习了.....等级:
发表于:2008-10-15 09:38:187楼 得分:0
+展开
-JavaScript
//xmlhttp.send("keyword="+escape($("keyword").value));
//========>
xmlhttp.send("keyword="+encodeURIComponent($("keyword").value));//这样编码数据才能使用mb_convert_encoding进行gb到utf-8的转换
//========>
xmlhttp.send("keyword="+encodeURIComponent($("keyword").value));//这样编码数据才能使用mb_convert_encoding进行gb到utf-8的转换
masss
masss
发表于:2008-10-15 09:47:408楼 得分:0
encodeURIComponent已经换了escape
后台也写成:
+展开
-HTML
<?php
$keyword=$_POST['keyword'];
if ($keyword=="")
die();
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($keyword, "UTF-8", "gb2312").' <span>'.
mb_convert_encoding($keyword, "UTF-8", "gb2312").' </span> </li>';
?>
$keyword=$_POST['keyword'];
if ($keyword=="")
die();
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($keyword, "UTF-8", "gb2312").' <span>'.
mb_convert_encoding($keyword, "UTF-8", "gb2312").' </span> </li>';
?>
中文显示成“???”
masss
masss
现在搞定了,测试中
spyking945
CSDN
发表于:2008-10-15 09:53:4010楼 得分:0
把所有的编码改成UTF—8
masss
masss
发表于:2008-10-15 09:59:3711楼 得分:0
+展开
用上面的代码可以输出中文了,但是用: -HTML
<?php
$keyword=$_POST['keyword'];
if ($keyword=="")
die();
header("content-type:text/xml;charset=gb2312");
echo ' <UL>';
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($keyword, "gb2312", "UTF-8").' <span>'.
mb_convert_encoding($keyword, "gb2312", "UTF-8").' </span> </li>';
echo ' </UL>';
?>
$keyword=$_POST['keyword'];
if ($keyword=="")
die();
header("content-type:text/xml;charset=gb2312");
echo ' <UL>';
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($keyword, "gb2312", "UTF-8").' <span>'.
mb_convert_encoding($keyword, "gb2312", "UTF-8").' </span> </li>';
echo ' </UL>';
?>
+展开
就出问题,mysql错误,应该是在查询keyword前要转一次,但是用了$keyword=mb_convert_encoding(trim($_POST['keyword'].''), "gb2312", "UTF-8"); 还是不行,希望高手指教 -HTML
<?php
$keyword=$_POST['keyword'];
if ($keyword=="")
die();
$conn=mysql_connect("localhost","root","851031");
@mysql_select_db("phplearn") or die('sorry');
$sql="select * from suggest where title like '%".$keyword."%' order by id desc limit 5";
$result=mysql_query($sql);
echo ' <ul>';
while($row = mysql_fetch_array($result))
{
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($row['title'], "gb2312", "UTF-8").' <span>'.
mb_convert_encoding($keyword, "gb2312", "UTF-8").' </span> </li>';
}
echo ' </ul>';
mysql_close();
?>
$keyword=$_POST['keyword'];
if ($keyword=="")
die();
$conn=mysql_connect("localhost","root","851031");
@mysql_select_db("phplearn") or die('sorry');
$sql="select * from suggest where title like '%".$keyword."%' order by id desc limit 5";
$result=mysql_query($sql);
echo ' <ul>';
while($row = mysql_fetch_array($result))
{
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.
mb_convert_encoding($row['title'], "gb2312", "UTF-8").' <span>'.
mb_convert_encoding($keyword, "gb2312", "UTF-8").' </span> </li>';
}
echo ' </ul>';
mysql_close();
?>
masss
masss
发表于:2008-10-15 10:03:1112楼 得分:0
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wwwroot\php\??oogle??splmysql??a.php on line 12
masss
masss
发表于:2008-10-15 10:04:2313楼 得分:0
错了,是line 10
showbo
要学习了.....
发表于:2008-10-15 10:18:0614楼 得分:0
+展开
-PHP
$sql="select * from suggest where title like '%".$keyword."%' order by id desc limit 5";
echo $sql;//输出sql看看是否正确
echo $sql;//输出sql看看是否正确
masss
masss
发表于:2008-10-15 10:27:3815楼 得分:0
select * from suggest where title like '%bar%' order by id desc limit 5
正确,而且查询分析器有结果
masss
masss
发表于:2008-10-15 10:28:5116楼 得分:0
select * from suggest where title like '%我%' order by id desc limit 5
中文也正确
masss
masss
发表于:2008-10-15 10:33:1517楼 得分:0
+展开
-HTML
<?php
$keyword=mb_convert_encoding(trim($_POST['keyword'].''), "gb2312", "UTF-8");
if ($keyword=="")
die();
$conn=mysql_connect("localhost","root","851031");
@mysql_select_db("phplearn") or die('sorry');
$sql="select * from suggest where title like '%".$keyword."%' order by id desc limit 5";
$result=mysql_query($sql);
header("content-type:text/xml;charset=gb2312");
echo ' <ul>';
while($row = mysql_fetch_array($result))
{
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.$row['title'].' <span>'.$keyword.' </span> </li>';
}
echo ' </ul>';
mysql_close();
?>
$keyword=mb_convert_encoding(trim($_POST['keyword'].''), "gb2312", "UTF-8");
if ($keyword=="")
die();
$conn=mysql_connect("localhost","root","851031");
@mysql_select_db("phplearn") or die('sorry');
$sql="select * from suggest where title like '%".$keyword."%' order by id desc limit 5";
$result=mysql_query($sql);
header("content-type:text/xml;charset=gb2312");
echo ' <ul>';
while($row = mysql_fetch_array($result))
{
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.$row['title'].' <span>'.$keyword.' </span> </li>';
}
echo ' </ul>';
mysql_close();
?>
现在查询用的这个,英文没有问题,就是中文报Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wwwroot\php\仿google的asp连mysql版\aa.php on line 13
spyking945
CSDN
不用responsexml
用text就好了
showbo
要学习了.....
发表于:2008-10-15 10:45:3719楼 得分:50
提示的错误是$result没有正确取出,应该是null
你直接访问这个php页面,然后执行$sql+"select * from suggest where title like '%我%' order by id desc limit 5 "的语句看执行有错误没有
+展开
-HTML
<?php
//$keyword=mb_convert_encoding(trim($_POST['keyword'].''), "gb2312", "UTF-8");
i/*f ($keyword=="")
die(); */
$keyword="我";//=======================
$conn=mysql_connect("localhost","root","851031");
@mysql_select_db("phplearn") or die('sorry');
$sql="select * from suggest where title like '%".$keyword."%' order by id desc limit 5";
$result=mysql_query($sql);
header("content-type:text/xml;charset=gb2312");
echo ' <ul>';
while($row = mysql_fetch_array($result))
{
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.$row['title'].' <span>'.$keyword.' </span> </li>';
}
echo ' </ul>';
mysql_close();
?>
//$keyword=mb_convert_encoding(trim($_POST['keyword'].''), "gb2312", "UTF-8");
i/*f ($keyword=="")
die(); */
$keyword="我";//=======================
$conn=mysql_connect("localhost","root","851031");
@mysql_select_db("phplearn") or die('sorry');
$sql="select * from suggest where title like '%".$keyword."%' order by id desc limit 5";
$result=mysql_query($sql);
header("content-type:text/xml;charset=gb2312");
echo ' <ul>';
while($row = mysql_fetch_array($result))
{
echo ' <li onclick=""form_submit()"" onmouseover=""mo(this.value)"">'.$row['title'].' <span>'.$keyword.' </span> </li>';
}
echo ' </ul>';
mysql_close();
?>
masss
masss
发表于:2008-10-15 10:52:3420楼 得分:0
while($row = mysql_fetch_array($result))
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wwwroot\php\仿google的asp连mysql版\bb.php on line 14
还是有这个错误,我发现在查询分析器里面能查出,但是用sql去查就没有结果,搞不清楚原因。
加支付宝好友偷能量挖...