ホームページ >バックエンド開発 >PHPチュートリアル >TP フレームワークと PDO 文字エンコーディングの問題

TP フレームワークと PDO 文字エンコーディングの問題

WBOY
WBOYオリジナル
2016-08-04 09:19:191402ブラウズ

フレームを使用して中国語を挿入して表示すると文字化けしません。PDO を使用して挿入してクエリを実行すると、中国語は文字化けしません。ただし、PDO で挿入した中国語をフレームを使用して表示すると文字化けします。 PDO 出力を使用して TP によって挿入された中国語を表示すると文字化けします。これはなぜですか? mysqlの黒いウィンドウに中国語を直接挿入すると、フレームを使用すると中国語は文字化けしませんが、PDOを使用すると文字化けします。PDOにこの文を追加しましたが、機能しません。 -type: text/html; charset=utf-8; '); 前に文字コードを変更した後、テーブルの文字コードが UFT8 形式であることがわかりました。 ?このような状況では、フレームワークと PDO メソッドによってクエリされた中国語が文字化けしないようにするにはどうすればよいでしょうか?特定のフィールドのエンコーディングとこのテーブルのエンコーディングの間に関係はありますか?どちらを優先すべきでしょうか?
これはmysqlの現在の文字エンコーディングです

TP フレームワークと PDO 文字エンコーディングの問題 リーリー

返信内容:

フレームを使用して中国語を挿入して表示すると文字化けしません。PDO を使用して挿入してクエリを実行すると、中国語は文字化けしません。ただし、PDO で挿入した中国語をフレームを使用して表示すると文字化けします。 PDO 出力を使用して TP によって挿入された中国語を表示すると文字化けします。これはなぜですか? mysql の黒いウィンドウに中国語を直接挿入すると、フレームを使用すると中国語が文字化けしませんが、PDO を使用すると文字化けします。この文を PDO に追加しましたが、header('content-type: text/html; charset=utf-8; '); 前に文字コードを変更したのですが、テーブルの文字コードが UFT8 形式なのになぜ GBK 形式になっているのでしょうか?このような状況では、フレームワークと PDO メソッドによってクエリされた中国語が文字化けしないようにするにはどうすればよいでしょうか?特定のフィールドのエンコーディングとこのテーブルのエンコーディングの間に関係はありますか?どちらを優先すべきでしょうか?

これはmysqlの現在の文字エンコーディングです


リーリー TP フレームワークと PDO 文字エンコーディングの問題

tp フレームワークは utf8 形式を使用するため、データベースの文字セットに問題があるはずです。データベースを utf8 に設定する必要があり、テーブルも utf8 に設定する必要があります。

上記の SQL コード、フィールドを見てください。はutf8ですが、時計はgbkです、何かが間違っているはずです

リーリー リーリー

複雑にならないように、プロジェクト全体に関係するすべてのエンコーディングを utf8 に設定するだけで、コードの文字化けの問題は発生しません

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