お仕事: 2011年1月アーカイブ

今朝、「やっと MTOS の移行案件が終わったでぇ」とツイートしたばかりだったのに。
やっと、本来のプログラミングの作業に戻れるかと思ったのに。

昼飯食って作業場に帰ったら、「'~'とか'-'とか入れると、全部'?'になっちゃうんですけど・・・」とお客さんから電話が・・・

はぁ~Unicodeのマッピングの問題か・・・

記事入力したら'~'が'?'になっちゃうってことは、DB の問題やろぅ!?と phpMyAdmin で MTOS のテーブル見てみたら、案の定、全テーブルの照合順序が'ujis_japanese_ci'になってるやん。

入力が UTF-8 で、DB が EUC-JP なんだから、次にそれを再び UTF-8 で表示しようとすると化けるわなあ、そりゃ。
入力した内容を DB 登録した時点で(UTF-8 から EUC-JP に変換した時点で)、間違ったマッピングがおこなわれているんだからなあ。
UTF-8 → EUC-JP → UTF-8 なんて変換したら、'~'や'-'は確実に化けるわ。(これを Unicode の腐ったマッピング問題と言う(^^;)

確かに、phpMyAdmin で DB の設定を見てみると、文字関係のグローバル値が皆 ujis になってるやん・・・さくらインターネットの DB ってそうなんじゃあ・・・
しかし、日頃、直接サーバに ssh 接続して設定ファイル触ってる俺には、この phpMyAdmin しか使えない環境でどう DB の設定を変えればいいのかようわからんで。
いつも shell 画面上で mysql コマンド叩いてるから、phpMyAdmin なんて使わんしなあ。

結局、

ALTER DATABASE `hogehoge_dbl` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

と、SQL コマンドで DB の文字コードを UTF-8 に明示的に指定してやってから、再度 MTOS のインストールをしたら、ちゃんと照合順序が'utf8_general_ci'で作成されたので一安心。
'~'を入力すれば、ちゃんと'~'で表示されるようになった。

つーか MTOS って TABLE 作る時、CREATE TABLE のオプションに DEFAULT CHARSET=utf8 を付けんのんかいな(^^;

つーか、Unicode 死ね(^^;

まったく、今後はこういうレンタルサーバがらみの仕事は工数見積を気をつけんといかんな。
今回はもう完全に大赤字です。とほほ(^^;

このアーカイブについて

このページには、2011年1月以降に書かれたブログ記事のうちお仕事カテゴリに属しているものが含まれています。

前のアーカイブはお仕事: 2010年12月です。

次のアーカイブはお仕事: 2011年3月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら