使用 PDO::MYSQL_ATTR_INIT_COMMAND 時是否需要「SET CHARACTER SET utf8」?
在基於PDO 的PHP 應用程式中,經常會遇到有關使用“SET NAMES utf8”和“SET CHARACTER SET”的必要性的問題utf8”在MySQL 中使用UTF-8 時。 utf8”僅設定客戶端字元集和結果字元集,不設定連接排序規則。
「SET CHARACTER SET utf8」是必要的嗎?
使用「 SET CHARACTER SET” “SET NAMES utf8”之後的“utf8”有效地將連接字元集和排序規則重設為其資料庫預設值。這可能會導致查詢處理期間潛在的字元遺失。為了確保完整的UTF-8 支持,使用“SET NAMES”而不是「SET CHARACTER SET」至關重要。採用查詢和結果的多步驟編碼/轉碼過程:
查詢被視為編碼character_set_client.
查詢從character_set_client轉碼到character_set_connection。 字串值從character_set_connection轉碼到列字元集,以便與列值進行比較。獨佔“SET CHARACTER SET utf8”的後果免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3