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

作者: c182796378 (似曾相似)   2018-01-06 02:52:49
如題,已爬過許多文章,嘗試了很多方式
讀取資料庫資料,顯示出來的中文都變成了問號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
先謝謝各位大大了~
作者: a0960330 (ViperLiu)   2018-01-06 10:03:00
你的HTML沒有 charset=utf-8 ?
作者: tkdmaf (皮皮快跑)   2018-01-06 13:23:00
這麼多內容的code是多餘的,在問問題時應該要縮小範圍你的問題既然是編碼,只要最低限度的測試輸出結果然後你並沒有告知你資料庫的編碼結構資料庫方面還有資料庫編碼,資料表編碼………
作者: wbc319 (哈利)   2018-01-06 13:51:00
直接連結資料庫 echo 中文那裡...出來的也是問號嗎?("SET NAMES 'utf-8'"); 是少一個=嗎?
作者: JohnRoyer (Zero 日落)   2018-01-06 15:58:00
Study-Area 之前有篇文章有詳細的設定,可以參考https://goo.gl/d9TGKd
作者: fezexp9987   2018-01-06 18:05:00
話說 mysqli和mysql能混著用@@?不過印象中沒有 - 不知道多了行不行 SET NAMES UTF8
作者: a0960330 (ViperLiu)   2018-01-06 21:31:00
mysqli跟mysql應該不能混著用吧......會不會是你用mysqli連接資料庫,可是你卻用mysql設定utf8
作者: gpmm (銀色)   2018-01-06 23:11:00
你資料表的語系是?
作者: hiigara (石頭)   2018-01-06 23:16:00
phpmyadmin 裡面下個 show create table customer_data然後把結果印出來給大家看看等等,mysql 的編碼定義應該是 utf8 而不是 utf-8?utf8 或 utf8mb4(大部分的表情符號要後者才會動)https://imgur.com/Cf0Qhgz
作者: crazwade (crazwade)   2018-01-08 16:18:00
資料庫的欄位好像也要設編碼
作者: MOONRAKER (㊣牛鶴鰻毛人)   2018-01-08 16:33:00
整個資料庫編碼設對就不用逐個設啦

Links booklink

Contact Us: admin [ a t ] ucptt.com