- ベストアンサー
SET NAMES utf8 はなぜ必要なんでしょうか?
データベースもテーブルも、スクリプトもUTF8なのに、わざわざ、「SET NAMES utf8;」としないと文字化けするのは、なぜでしょうか? この、SET NAMES utf8; は、コネクトする度に必要になるのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
クライアント側の文字コードとサーバ側の文字コードの間で自動変換をしますからね>4.1以降(だったかな・・)。スクリプト側での(実際の)文字コードはサーバに「クライアントの文字コードはこれこれです」という通知にはなりませんから、接続のたびに「set names」で通知する必要があります。
お礼
ご回答ありがとうございます。 なるほど、面倒ですが必要なんですね。 そういえば、my.cnf で charsetをutf8にしても、mysql_client_encoding() でLatin1を返すのと何か関係があるのですかね。 ありがとうございました。