ホームページ  >  記事  >  バックエンド開発  >  PDO_ODBC が Access から UTF-8 アクセント付き文字を取得できないのはなぜですか?

PDO_ODBC が Access から UTF-8 アクセント付き文字を取得できないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-20 17:52:02789ブラウズ

Why does PDO_ODBC fail to retrieve UTF-8 accented characters from Access?

PDO_ODBC がアクセス UTF-8 アクセント付き文字の取得に失敗しました

問題の説明

を試行してくださいAccess を使用する データベースを MySQL に変換すると、すべて正常に動作しますが、大きな問題が発生します。Access データベースに標準以外の文字が含まれている場合、変換は失敗します。クエリは次のエラーを返します:

「無効な」文字を含むテキスト行を直接出力すると、ブラウザーには黒い四角の中に疑問符が表示されます (そのため、é はこの無効な記号になります)。

注: 同じフォームで、このデータベース アップロードのタイトルのテキスト ボックスに「é」を受け入れ、保存し、表示することができます。また、ページを「名前を付けて保存」して再度開くと、「é」が正しく表示されます。

接続方法は次のとおりです:

以下を含む複数の方法を試しました:

Access で "CurrentDb.Collat​​ingOrder" を試行すると、1033 と表示されます。 , どうやらこれは「英語、ドイツ語、フランス語、ポルトガル語の並べ替えルール」を表す dbSortGeneral です。

何が問題だったのでしょうか? PDO が私のブラウザと PHP が完全に理解していない校正結果を送信しているように感じます。

問題は解決しました

1. 単純だが不完全な修正

実際、Access ODBC から返されるテキストは次のとおりです。 Windows この文字は、Access データベースに Unicode 文字として格納されている場合でも、-1252 文字エンコーディングと一致します。したがって、テーブル「Teams」の例では、

コード

がブラウザに表示されます

2。

を修正する UTF-8 を完全にサポートするには、次のような ADODB 接続とレコードセット オブジェクトで COM を使用する必要があります:

以上がPDO_ODBC が Access から UTF-8 アクセント付き文字を取得できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。