前に同僚にMysqlからINTO OUTFILEしたデータやphp上で表示するデータの「〜」が「〜」になるけどどうしたらよい?という質問を受けた。(因みにMacやLinux上では同じに見えると思います。)
所謂、Web業界で横行している波ダッシュ問題という奴ですねと。
その時は、「echoでもする際にstr_replaceでもかましてみれば?」と答えたのですが(ぉ
で、自分も今日それに出くわした…
というのも、私が構築したシステムは
1.別サーバーのOracleが吐き出したTSVをzipにしたものをwget(Basic認証あり) 2.unzipしてfind -name "*.tsv" | xargs nkf --overwrite -wx でUTF-8化 3.MysqlのSOURCEコマンドでDBにインポート
このような手順だったわけです。
3の前に「sed -i "s/〜/〜/g" *.tsv」で上書き。
あんまりスマートじゃない気がするけど、まぁ動くのが先だからね。
実家ではmini9(Ubuntu)の小さいキーボードでせこせこ作業をしていたため、マルチディスプレイでかつフルHDDといういつもの環境が天国に感じる。
ましてや、エルゴノミクスキーボードなのでタイピングも楽だし。
帰省中に弟子に丸投げしていたんですが、ほぼ原因も分かってスッキリ。(こんな感じで作業をしていたら文字コードがおかしくなるわけだ。)
windows-DOS窓=SJIS windows-Poderosa=UTF-8 windows-RDE(Ruby+gem)=SJIS Linux-Terminal=UTF-8 Linux-bash=UTF-8 Linux-Ruby=SJIS
一応、CREATE TABLEの際、文字コードを指定して作っていたのだけども多分どこかでコケたんだろうなぁ…。 hori君助かりました。