在使用php與sql讀取出資料庫資料來變成亂碼或是問號
首先需要先確認網頁能不能正常顯示中文
echo "中文";
若是可以,表示可能資料庫讀取時的編碼錯誤
將他設成相同編碼即可
參考
https://www.w3schools.com/php/func_mysqli_set_charset.asp
使用mysqli時可使用以下式子設定編碼為UTF8
- mysqli_set_charset(connection, charset)
複製代碼
若是物件導向(Object oriented)可以使用
- $mysqli -> set_charset(charset)
複製代碼
前面的變數名稱記得改
物件導向的參考範例,可以見到設定前後的編碼不同,
設定前是latin1,設定後是utf8
- @$db = new mysqli('localhost', '資料庫使用者', '密碼', '資料庫名稱');
- echo "Initial character set is: " . @$db -> character_set_name();echo "<br />";
- echo "Initial character set is: " . mysqli_character_set_name(@$db);
- echo "<br />";
- //mysqli_query(@$db,"SET NAMES UTF8");
- @$db -> set_charset("utf8");
- //mysqli_set_charset(@$db,"utf8");
- echo "Current character set is: " . @$db -> character_set_name();echo "<br />";
- echo "Current character set is: " . mysqli_character_set_name(@$db);
- echo "<br />";
複製代碼
|