mysql_query(”SET NAMES sjis;”)

例えば、サーバ側のMysqlの文字コードが、UTF-8でプログラム(ソースコード)がSJISの場合・・・
mysql_query("SET NAMES sjis;")
をかませれば、文字化け無く、一見通常に表示します。
しかし、ここに落とし穴が・・・
一般的な日本語文字は正常に表示されるのだが、特殊な文字(@、A・・・、、アなど)になってしまう
これは、やはりMysqlでのマルチバイトのコード変換が上手くいっていないものと考えられる。
結局、横着せずにサーバ環境に合わせて文字コードを設定するべきと考える。

つまり次のように心がければ、このような災難に遭う確率が少ない

  • サーバ側がSJISの場合は、ソースコードもSJISでコーディングする。
  • 当然、サーバ側がUTF-8の場合は、ソースコードもUTF-8でコーディングする。
    ※結局、いろんな事をせずにシンプルに文字コードを統一するように心がければ良いことになる。(simple is best である)。 そうすれば自ずとmysql_query("SET NAMES sjis;") を入れる必用も必用も無くなる。 
    mysql_query("SET NAMES sjis;")は文字化けの根本的な対策にはなりません

メールでの問合せ