2012年7月27日金曜日

さくら インターネット mysql 文字化け

就活中です。

卒業課題に阿呆のように長すぎるコード(3万7千行)を書いてしまった為、

学校で借りた鯖ではビクとも動かず、

どうやら書類審査にネット上に成果物が無いとスキル無しという理由で落とされてしまうという事実に今さら気付き、

2日程前に同級生のMis19-Fryさんに教わったHOST1FREEに登録したのですが、

登録OKのメールが来たにも関わらずログインできず

(どうやらIDとPWが書いてあるメールが後で来るっぽかったのですが1日半待っても来なかったので)

こっちは急いでるんだよ、オラオラオラとばかりにログインを何回もトライしていたら

あなたはブラックリストに載りましたとのメッセージが!!!
 
軽くショックを受けつつも月額500円ケチって就職のチャンスを逃すのもバカバカしいと考えを改め、

さくらインターネットのスタンダードに今朝、申し込みしました。

何か軽いものでもと、HOST1FREE用に作っていましたが、有料鯖だからイケんじゃね?と思い、

今まで作った中で唯一完成している人工無脳をアップしてみました。

さくらの感想は

phpmyadminがすっごく軽い!!自宅パソコンのVMware のよりも軽い!

しかし、データベースの文字化けに激しく悩まされ、

色々ググってもこれという回答も得られず、以下、更新履歴より抜粋(何回も書くのめんどい)

*****************************************


■2012年7月27日 15:24:36

うわ~ん、動くには動いたが激しく文字化けする。

文字が全て???に変換され、どうやらこちらが言っている事も人工無脳には伝わって無い様子。

色々調べてみるとどうやら鯖の文字コードとデータベースの文字コードが食い違う為おかしくなるらしい。

my.iniをいじれとか、root権限でphpmyadminの設定を直せとか無茶なアドバイスがあったが

(全てさくらレンタルサーバを使用する事が前提のアドバイスである。しかも質問者が解決済みにしているという謎)

最終的に

$db = mysql_connect($host,$username,$password);

$sdb = mysql_select_db($dbname);

の2行にちょっと手を加えて

$db = mysql_connect($host,$username,$password);

mysql_query("SET NAMES utf8",$db); //クエリの文字コードを設定

$sdb = mysql_select_db($dbname,$db);

にする事で無事解決。

*****************************************



以上抜粋でした。



(上のコード、mysql_connectとかmysql_queryとかmysql_select_dbとか

PHPマニュアルのHPを見ると「おすすめできません」と書いてありますね。

今後参考にされる方は mysqli_connectのように「i」を付けた方が良いようです)

さくらは同級生が2人程使っていて、

ブログにヒトバシラーな記録があったというのを小耳に挟んだ気がしたんですが、

全部ざっと見た限りでは見当たらず、

ちゃんと聞いとく、または最初からさくらを使っていればこんな苦労は無かったんじゃ…と思いました。 


で、無事に動く事を確認し、グーグルアナリティクスを仕込んで、

第3者として普段使ってないIEから入ってみたら、

 Twiter Bootstrapが激しくCSS崩れを起こしています。orz

見ないで~見ないで~IEでだけは見ないで~

アドレス↓↓
http://lebateleur.sakura.ne.jp/

FirefoxとGoogle ChromeとSafariとOpera は大丈夫でした。