admin 發表於 2021-2-8 20:52:54

php sql 讀取出來變問號,亂碼問題解決

在使用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 />";

頁: [1]
查看完整版本: php sql 讀取出來變問號,亂碼問題解決