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 の両方で正しく表示されることが保証されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3