MySQL の "SET NAMES utf8" について
MySQL に関係する PHP スクリプトで頻繁に発生する、"SET NAMES utf8" の使用は依然として問題です。多くの開発者にとって謎です。この記事では、その目的と PDO 環境と非 PDO 環境の両方への適用性について説明します。
PDO のみですか?
いいえ、「SET NAMES utf8」は排他的ではありません。 PDO用。 PDO と MySQLi の両方を含む、MySQL 接続が確立されているあらゆるコンテキストで使用できます。
目的と必要性
「SET NAMES utf8」コマンドは、MySQL に指示します。サーバーは受信データを UTF-8 エンコーディングで解釈します。これは、アクセント付き文字や非ラテン文字など、ASCII 範囲外の文字を扱う場合に非常に重要です。このコマンドがないと、サーバーはデータを正しく解釈できず、文字化けまたは破損した出力が発生する可能性があります。
このコマンドが必要になるのは、MySQL インスタンスがクライアントからの UTF-8 エンコーディングを期待するように構成されていない場合です。デフォルトで接続されます。これは、特定の地域やプラットフォームでよく発生します。
推奨読書
Unicode とそのデータ処理への影響を包括的に理解するには、「Unicode Hell」を参照してください。 Joel Spolsky 著、http://www.joelonsoftware.com/articles/Unicode.html。
「SET の代替案を検討するには」 NAMES」を確認し、その影響について洞察を得るには、https://dba.stackexchange.com/questions/8167/whether-to-use-set-names.
にアクセスしてください。以上がMySQL で「SET NAMES utf8」を使用する理由: PDO のみ、またはより広い適用性?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。