正直言ってUTF-8を使わない人を見下している

UTF-8を使わない人って、ツマラナイ人間が多いです。正直見下しています。
考えが古臭い最新知識が少ない、「〜だ」と断定するのがクセ、それなのに話の裏付けがない。
こんなヤツと一緒に働きたくなんかありません。その上、コードを書かせても全くダメ。掲示板もまともに書けない。

・・・とネタはここまでにして(正直言って本を読まない人を見下している)

最近5〜10年くらい前のシステムを新サーバへ移行しなければいけないということがありまして、その際にちょいと苦労したのでメモっておきます。

ここ最近のものは基本的に文字コード"UTF-8"で作られていて、多分他社様でも"UTF-8"を使用している所が主流なのではないでしょうか?

ただ今回の移設対象のシステム群は基本的にソース類もデータも"EUC-JP"でした。

移行に伴いDBクライアントとして使用してたphpMyadminもバージョンアップ
→こいつが曲者でバージョン3.5以上(調べてないので定かではない)だと内部的なエンコードUTF-8になってしまうことが判明

データベースを使用しなければhtmlのcharsetとphpのソース内でmb_internal_encodingを使用して対象文字コードを指定すればOKですが、DB保持データもEUCのためselectした結果が?????で表示され文字化けしてしまいました。

いろいろ試した結果DB接続時にcharsetしてあげるのが一番改修が少なくスムーズにいけました。

   $db = mysql_connect("server_name","user_name","password");
   mysql_select_db("database_name",$db);
   mysql_set_charset("ujis",$db); //EUC-JPはujis

これで文字化けせずに"EUC-JP"で文字をI/Oできました。

注意としてはphpMyadminで保存データを見るとEUC-JPで保存されているデータも(表示上は)UTF-8に変換されているので、髙(はしごだか)や~(チルダ)などは文字化けしてしまいます。

その際の対応としてwindowsのみを想定したものになってしましまいますが

   //省略
   
   mysql_set_charset("eucjpms",$db); //widows用?

とすることで問題無さそうでした。