MySQLの文字化け対応

下記のような仕様で管理しているDBと表示の際の文字コードが異なる場合がよくある。

DB:UTF-8
表示:Shift-JIS (プログラムソースコード:Shift-JIS)

その場合、日本語の文字化けが発生するので、回避策として下記の変換をしているが

mb_convert_encoding($mojibake, ‘SJIS’, ‘UTF-8′);

「髙」や「﨑」の特殊文字があると正しく変換されないため、おすすめできない。
しかし、下記を実施すると

mb_convert_encoding($mojibake,’SJIS-win’, ‘UTF-8′);

正しく変換されるがプログラム修正が多くなる場合がある。
そこでおすすめしたいのが、「set names cp932」だ。
データ取得前に、SQLで実行するだけと、プログラマにやさしい
これは「set names sjis」と実行し文字化けた場合にも有効なのだ。