• 締切済み

SET NAMES utf8 で汎用性が犠牲になる?

PHP + MySQL + UTF-8 のアプリケーションでよくある文字化け ?????????????? を防ぐため、接続直後に SET NAMES utf8 をするという対策がありますが、「接続するたびに SET NAMES utf8 するので、汎用性が失われる」と嫌う声がよく聞こえます。 むしろ、接続するたびに必ず SET NAMES utf8 することになるのだから我としては汎用性は失われないと思いますが、そうでないとしたら彼のいう「汎用性」とは何を指しているのでしょうか。 もう一点。同じ組み合わせでも ?????????????? とならない場合もあるのですから、それに倣えばよいのに、彼が嫌う SET NAMES utf8 を使うのはなぜでしょうか。

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

私も「汎用性が失われる」という意図がわかりません(汗 無条件で「set names」を出力する書き方であれば、たしかに汎用性は失われる(MySQL4.0系もまだ稼動中)とは思いますが、そういうことはしないですね。接続直後に「set names」を挿入するかどうかを設定ファイルに持ちます。どうせ接続のための文字列は持たないといけないので、それと同じですね。項目が増えただけです。

username
質問者

お礼

ありがとうございます。 質問数制限のため、閉じさせていただきます。

username
質問者

補足

ありがとうございます。 存否も含め、他のご意見も聞いてみたいので、もう少しインキュベートします。

関連するQ&A