PHP ODBC、特に PDO_ODBC を使用して Access データベースからデータを取得しようとすると、非標準です文字が正しくインポートされず、特殊文字の代わりに疑問符が表示されるなどの問題が発生する可能性があります。
この問題は、Access ODBC ドライバーがサポートされていないことが原因で発生します。データベースが Unicode でデータを保存している場合でも、データは UTF-8 形式で送信されます。その結果、ODBC ドライバーがテキストを返すとき、テキストは非標準形式 (多くの場合 Windows-1252) でエンコードされます。このエンコーディングは UTF-8 と完全な互換性がないため、ブラウザや PHP で表示の問題が発生します。
この問題に対処する一般的な試みには、mb_convert_encoding() を使用して Windows から変換することが含まれます。 -1252 から UTF-8。ただし、このアプローチでは、Windows-1252 以外の文字が依然として誤って表現される可能性があるため、問題が完全に解決されるわけではありません。
問題を完全に解決し、UTF-8 データを効果的に処理するには、 ADODB Connection および Recordset オブジェクトとともに COM を使用する必要があります。 COM (コンポーネント オブジェクト モデル) と ADODB (ActiveX データ オブジェクト) により、Access データベースとの直接対話が可能になり、UTF-8 データを適切に処理できるようになります。
COM オブジェクトを作成し、コード ページを UTF- に設定することで、 8 CP_UTF8 を使用すると、正しい言語エンコーディングでデータベース接続を確立できます。 ADODB Recordset オブジェクトを使用してデータベースからデータを取得すると、文字が元の形式で維持され、ブラウザと PHP の両方で正しく表示されることが保証されます。
以上がPDO_ODBC を使用して Access から UTF-8 アクセント付き文字を正しく取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。