Unicode のマッピング問題はもうどうにかしてほしい

今朝、「やっと 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 死ね(^^;

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

トラックバック(0)

このブログ記事を参照しているブログ一覧: Unicode のマッピング問題はもうどうにかしてほしい

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/1436

コメントする

このブログ記事について

このページは、shinodaが2011年1月14日 05:11に書いたブログ記事です。

ひとつ前のブログ記事は「今頃になってやっと PostTweet プラグインに入れ替えたのであった」です。

次のブログ記事は「丸味はうどんよりもおにぎりが・・・」です。

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


月別 アーカイブ

電気ウナギ的○○ mobile ver.

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