ホームページ  >  記事  >  バックエンド開発  >  MySQL 4.1 の文字化け問題を解決する_PHP チュートリアル

MySQL 4.1 の文字化け問題を解決する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:02:22838ブラウズ

MySQL 4.1 以降に導入された多言語サポートは非​​常に優れており、いくつかの機能は他のデータベース システムを上回っています。ただし、テスト中に、MySQL 4.1 より前の MySQL に該当する PHP ステートメントを使用して MySQL データベースを操作すると、テーブルの文字セットが設定されていても文字化けが発生することが判明しました。
MySQL 4.1 の文字セット サポート (Character Set Support) には、文字セット (Character set) とソート方法 (照合順序) の 2 つの側面があります。文字セットのサポートは、サーバー、データベース、テーブル、接続の 4 つのレベルに細分化されています。
システムの文字セットとソート設定を表示するには、次の 2 つのコマンドを使用できます:
mysql> SHOW VARIABLES LIKE 'character_set_%'
+----------------- - --------+---------------+
| 値 |
+--- -- ----------+-------------------------- -- +
| 文字セット_クライアント |
| 文字セット_データベース |
| 文字セット_システム | usr/share/mysq l/ charsets / |
+--------------------------+--------------------- -- --------+
セット内の 7 行 (0.00 秒)
mysql> 'collat​​ion_%' のような変数を表示
+----------------- -- ---+-------------------+
| 値 |
+---------------- -- ----+-------------------+
| 照合_データベース | latin1_swedish_ci |
+--- -- -+-------------------+
セット内の 3 行 (0.00 秒)
値上記はシステムのデフォルトです。 (なぜシステムがデフォルトで latin1 というスウェーデン語のソート方法を使用するのか不思議です)...
本来の方法で PHP 経由で MySQL データベースにアクセスすると、テーブルのデフォルトの文字セットが utf8 に設定されてクエリが送信されても​​、 UTF-8 エンコードを使用しても、データベースに保存されているデータが依然として文字化けしていることがわかります。問題はこの接続層にあります。解決策は、クエリを送信する前に次の文を実行することです:
SET NAMES 'utf8';
これは、次の 3 つの命令と同等です:
SET Character_set_client = utf8;
SET Character_set_results = utf8;
SET Character_set_connection = utf8;
END





http://www.bkjia.com/PHPjc/631047.html

www.bkjia.com

tru​​e

技術記事 MySQL 4.1 から導入された多言語サポートは非​​常に優れており、いくつかの機能は他のデータベース システムを上回っています。ただし、テストプロセス中に、P の使用は 4.1 より前の MySQL に適していることが判明しました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。