鍍金池/ 問答/PHP  HTML/ ajax調(diào)用的漢字編碼問題

ajax調(diào)用的漢字編碼問題

test.html點擊查詢后,調(diào)用test.php,需要查詢的字符也通過url編碼的方式,發(fā)送到test.php,然后mysqli調(diào)用sql語句。

過程很簡單,代碼也來了,可以查詢英文,漢字處理不了。

下面是test.html

$(function(){
$("#Submit").click(function(){
    var key = escape($("#key").val());
    var sel = $("#sel").val();
    if( key != 0 )
    {
        $.get("test.php",{key:key,sel:sel,sid:Math.random()},
                function(data){
                    $("#disp").html(data);
                });
    }
    else
    {
        $("#disp").html("搜索內(nèi)容不為空");
    }
});
});
</script>
<h2 align="center" style="margin:4px">以ajax方式查詢數(shù)據(jù)</h2>
<div style="border:1px solid gray;background:#eee;padding:4px">
查詢留言:請輸入關(guān)鍵字
<input id="key" type="text">
<select id="sel" name="">
    <option value="title">文章標(biāo)題</option>
    <option value="content">文章內(nèi)容</option>
</select>
<input id="Submit" type="button" value="查詢">
</div>
<div id="disp"></div>
</body>
</html>
<div id="disp"></div>

test.php部分如下

<?php
header("Content-type:text/html;charset=utf-8");
ini_set('display_errors', 1);
error_reporting(E_ALL);
include("conn.php");
$key = trim($_GET["key"]);
$sel = $_GET["sel"];
$sql = "select * from lyb";
if($key != ""){
    $sql = $sql." where $sel like  '%$key%';";
    $result = $conn->query($sql);
}
if($result->num_rows > 0){ ?>
<p>關(guān)鍵字為<?php  echo $key ?>,共找到<?php echo $result->num_rows ?>條留言</p>
<table>
    <tr>
        <th>標(biāo)題</th>
        <th>內(nèi)容</th>
        <th>作者</th>
        <th>email</th>
        <th>ip</th>
    </tr>
<?php while($row = $result -> fetch_assoc()){ ?>
<tr>
    <td><?php echo $row['title']  ?></td>
    <td><?php echo $row['content']  ?></td>
    <td><?php echo $row['author']  ?></td>
    <td><?php echo $row['email']  ?></td>
    <td><?php echo $row['ip']  ?></td>
</tr>

<?php }?>
</table>

<?php } 
else
    echo "<p>沒有搜索到任何留言</p>";
?>

查詢英文

圖片描述

查詢中文(ajax)
圖片描述

直接通過數(shù)據(jù)調(diào)用

select title,content from lyb where title like '%大家%';
+-----------------+-----------------------------------------+
| title           | content                                 |
+-----------------+-----------------------------------------+
| 祝大家開心      | 非常感謝大家長期以來的幫助              |
| 祝大家開心      | 非常感謝大家的幫助                      |
| 大家好!        | 雪花紛飛                                |
| 大家好呀        | 下雪了                                  |
| 大家好          | 一起討論                                |
| 大家好          | utkj混口飯大公開法國隊                  |

我考慮了,應(yīng)當(dāng)是test.php中,這里的問題
$key = trim($_GET["key"]);

修改成

$key = unescape(trim($_GET["key"]));

運行報錯 Call to undefined function unescape()
請問,如何解決?

回答
編輯回答
厭遇

你需要encodeURI一下中文參數(shù)

2017年2月3日 12:45