1.保證MySQL和PHP的編碼一致
MySQL
修改整個數據庫的編碼格式
注意:如果數據不重要的話,可以直接使用更改數據庫的編碼格式,再重新建表即可。(此例中的數據庫是test)
注意:如果數據不重要的話,可以直接使用更改數據庫的編碼格式,再重新建表即可。(此例中的數據庫是test)
alter database test character set utf8
修改整張表的編碼格式
注意:如果數據是重要數據的話,執行下列代碼把整張表編碼格式轉換成utf8即可(此例中的數據表是students)
注意:如果數據是重要數據的話,執行下列代碼把整張表編碼格式轉換成utf8即可(此例中的數據表是students)
alter table students convert to character set utf8
修改students 表中sname 字段的編碼格式
注意:第一個sanme是要給表中的sname字段修改編碼格式。
第二個sname varchar(64)是要修改的字段名和字段類型(一般和原表中一樣,不會做修改)
not null是修改sname不能為空的。(可以選擇不加)
注意:第一個sanme是要給表中的sname字段修改編碼格式。
第二個sname varchar(64)是要修改的字段名和字段類型(一般和原表中一樣,不會做修改)
not null是修改sname不能為空的。(可以選擇不加)
alter table students change sname sname varchar(64) character set utf8 not null;
也可以使用phpMyAdmin進入數據表

或進入數據庫
PHP
在php頁面頭部加上:
header("Content-type: text/html; charset=utf-8"); //注意:這一句前不能向頁面輸出任何內容
另外在html里設置的是 <meta http-equiv="content-type" content="text/html;charset=utf-8">
2.獲取由搜索框傳遞來的信息后,加上單引號
搜索框:
<form action="xxx.php" method="post">
<p >輸入名字:</p><input type="text" name="userName" />
<button type="submit" name="submit" value="搜索"/>搜索</button>
xxx.php:
$tofind = $_POST["userName"];
$sql = "SELECT * FROM user WHERE name='$tofind';";
$result = $conn->query($sql);
即可實現查詢漢字字符串
【至少我的成了。。】
如果還沒有解決,可以嘗試:
https://blog.csdn.net/Amo_C1003/article/details/80473169 PHP+MySQL無法查詢中文數據
https://www.cnblogs.com/hechunhua/p/3837213.html Apache以及PHP的默認編碼問題解決(詳解)