嘗試使用PHP ODBC(特別是透過PDO_ODBC)從Access 資料庫擷取資料時,非標準字元可能無法正確匯入,並可能導致諸如在特殊字元處顯示問號之類的問題。
該問題源於這樣一個事實:Access ODBC 驅動程式不會以 UTF-8 格式傳輸數據,即使資料庫可能以 Unicode 儲存資料。因此,當 ODBC 驅動程式傳回文字時,它會以非標準格式(通常是 Windows-1252)進行編碼。此編碼與 UTF-8 不完全相容,導致瀏覽器和 PHP 中出現顯示問題。
解決此問題的一些常見嘗試包括使用 mb_convert_encoding() 從 Windows 轉換-1252 到 UTF-8。然而,這種方法並不能完全解決問題,因為 Windows-1252 以外的字元仍然可能被錯誤表示。
要完全解決問題並有效處理 UTF-8 數據,有必要將 COM 與 ADODB Connection 和 Recordset 物件一起使用。 COM(元件物件模型)和 ADODB(ActiveX 資料物件)支援與 Access 資料庫直接交互,並允許正確處理 UTF-8 資料。
透過建立 COM 物件並將代碼頁設為 UTF- 8.使用CP_UTF8,可以用正確的語言編碼建立資料庫連線。然後,ADODB Recordset 物件可用於從資料庫檢索數據,確保字元保持其原始格式並在瀏覽器和 PHP 中正確顯示。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3