[請益] 讀取資料庫顯示中文

看板PHP作者 (似曾相似)時間7年前 (2018/01/06 02:52), 7年前編輯推噓2(2019)
留言21則, 9人參與, 7年前最新討論串1/1
如題,已爬過許多文章,嘗試了很多方式 讀取資料庫資料,顯示出來的中文都變成了問號QQ 以下為程式碼: <?php //fetch.php header('Content-Type: text/html; charset=utf-8'); $connect = mysqli_connect("localhost", "root", "12345678", "contact"); mysql_query("SET NAMES 'utf-8'"); mysql_query("SET CHARACTER_SET_CLIENT='utf-8'"); mysql_query("SET CHARACTER_SET_RESULTS='utf-8'"); $output = ''; if(isset($_POST["query"])) { $search = mysqli_real_escape_string($connect, $_POST["query"]); $query = " SELECT * FROM contact WHERE name LIKE '%".$search."%' OR gender LIKE '%".$search."%' OR phone LIKE '%".$search."%' OR mobile LIKE '%".$search."%' "; } else { $query = " SELECT * FROM contact ORDER BY name "; } $result = mysqli_query($connect, $query); if(mysqli_num_rows($result) > 0) { $output .= ' <div class="table-responsive"> <table class="table table bordered"> <tr> <table width="805" height="75" border="0" id="test" border: solid #0 00 <tr bgcolor="#A9D6EB"> <th>C_name</th> <th>C_id</th> <th>C_phone</th> <th>C_staus</th> </tr> '; while($row = mysqli_fetch_array($result)) { $output .= ' <tr> <td>'.$row["name"].'</td> <td>'.$row["gender"].'</td> <td>'.$row["phone"].'</td> <td>'.$row["mobile"].'</td> </tr> ' ; } echo $output; } else { echo 'Data Not Found'; } ?> 以下為網頁顯示畫面跟PHPmyadmin: https://imgur.com/a/jqmBo https://imgur.com/a/u4ZkE 先謝謝各位大大了~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.79.26 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1515178371.A.77D.html

01/06 10:03, 7年前 , 1F
你的HTML沒有 charset=utf-8 ?
01/06 10:03, 1F
有加了耶,但還是一樣顯示問號 ※ 編輯: c182796378 (27.247.44.157), 01/06/2018 12:16:47

01/06 13:23, 7年前 , 2F
這麼多內容的code是多餘的,在問問題時應該要縮小範圍
01/06 13:23, 2F

01/06 13:23, 7年前 , 3F
你的問題既然是編碼,只要最低限度的測試輸出結果
01/06 13:23, 3F

01/06 13:24, 7年前 , 4F
然後你並沒有告知你資料庫的編碼結構
01/06 13:24, 4F

01/06 13:26, 7年前 , 5F
資料庫方面還有資料庫編碼,資料表編碼………
01/06 13:26, 5F
資料庫編碼結構是指utf8_unicode_ci嗎?抱歉QQ因為剛開始學php,很多東西都還搞不清 楚... ※ 編輯: c182796378 (27.247.44.157), 01/06/2018 13:31:10 ※ 編輯: c182796378 (114.33.79.26), 01/06/2018 13:46:40

01/06 13:51, 7年前 , 6F
直接連結資料庫 echo 中文那裡...出來的也是問號嗎?
01/06 13:51, 6F
echo可以顯示中文!但讀取資料就不行 ※ 編輯: c182796378 (27.247.44.157), 01/06/2018 13:59:48 ※ 編輯: c182796378 (27.247.44.157), 01/06/2018 14:00:26

01/06 14:48, 7年前 , 7F
("SET NAMES 'utf-8'"); 是少一個=嗎?
01/06 14:48, 7F

01/06 15:58, 7年前 , 8F
Study-Area 之前有篇文章有詳細的設定,可以參考
01/06 15:58, 8F

01/06 15:58, 7年前 , 9F
01/06 15:58, 9F

01/06 18:05, 7年前 , 10F
話說 mysqli和mysql能混著用@@?
01/06 18:05, 10F

01/06 18:16, 7年前 , 11F
不過印象中沒有 - 不知道多了行不行 SET NAMES UTF8
01/06 18:16, 11F

01/06 21:31, 7年前 , 12F
mysqli跟mysql應該不能混著用吧......會不會是你用
01/06 21:31, 12F

01/06 21:31, 7年前 , 13F
mysqli連接資料庫,可是你卻用mysql設定utf8
01/06 21:31, 13F

01/06 23:11, 7年前 , 14F
你資料表的語系是?
01/06 23:11, 14F

01/06 23:16, 7年前 , 15F
phpmyadmin 裡面下個 show create table customer_data
01/06 23:16, 15F

01/06 23:16, 7年前 , 16F
然後把結果印出來給大家看看
01/06 23:16, 16F

01/06 23:18, 7年前 , 17F
等等,mysql 的編碼定義應該是 utf8 而不是 utf-8?
01/06 23:18, 17F

01/06 23:19, 7年前 , 18F
utf8 或 utf8mb4(大部分的表情符號要後者才會動)
01/06 23:19, 18F

01/06 23:21, 7年前 , 19F

01/08 16:18, 7年前 , 20F
資料庫的欄位好像也要設編碼
01/08 16:18, 20F

01/08 16:33, 7年前 , 21F
整個資料庫編碼設對就不用逐個設啦
01/08 16:33, 21F
文章代碼(AID): #1QJyc3Tz (PHP)
文章代碼(AID): #1QJyc3Tz (PHP)