ほんとMacroMediaのときからそうだけど、サンプルやらチュートリアルが抽象的すぎて理解をするのに時間がかかる。複数のドキュメントを行ったり来たりしないといけない…。
大抵の言語がこんな感じだけど、特に情報の少ないColdFusionだと八方ふさがりに陥る可能性も…。タグベースでわかりやすい反面、「タグベースの言語」という縛りがあるので機能を強化するために分かりにくくなっていく気が…。
習得のしやすさはピカイチなのに、中途半端にプロ思考。なので理解しにくい。一長一短が最も強く出ている言語がColdFusionのように感じます。

ColdFusionはいったい何を目指しているんでしょうか?おもしろい言語なのになぁ…。バージョンアップを重ねるごとにPHPの方がいいんじゃないかと思えるようになってきます。
特にサーバーOSの影響を大きく受けるのはColdFusionがトップではないでしょうか。そんなアプリケーションサーバーを信頼して使っていてもいいのかちょっと不安。
よっぽどASP.netのほうがOSを限定している分、安心なのかな。どうなんだろ?
どうしようColdFusion…。ASP.netでC#使う方が賢明なのかな…。PHPの方が汎用性あるしな…。迷い始めてきました。
新しくウェブサイトを立ち上げるにあたって、アプリケーションサーバーが必要に。
PHP、ASP.netなども考えたが、一から勉強するのもダルイのでやはり経験のあるColdFusionにすることに。しかしウェブ開発をしていた頃から随分経つ…。経験といってもインターネット関連ではない他業種の小さな会社で片手間程度にしかやっていなかった…。つまり限りなく初心者に近い。しかも6.1しか使った事がない。ちょっと不安ではあったが、とりあえずやるだけやってみることに。

まずはホスティング選び。以前はフューチャリズムワークスを使っていたのだが、個人なのでもう少し安いところがないかと探してみた。すると「ロリポップ」で有名なpaperboy&co.の「heteml」というColdFusionホスティングを発見。同じくpaperboy&co.運営の「ムームードメイン」のDNSを使えば初期費用半額ということで、即決。フューチャリズムも老舗だし、よいのだけど、年一括払いというのが貧乏な俺ではちょっとネックになってしまいました。

とりあえず、ドメイン取得したサーバー借りた。ということでいろいろ思い出す意味でテストをしてみました。アプリケーションサーバーなんだからデータベースを使わないと何の意味もないでしょ!ってなことでデータのやりとりをテスト。

…しかし…入力も出力も悲惨なモノ…(T▽T;)
文字化け化けのバケラッタです。hetemlのサポートページを読んでみるとファイルのエンコーディングをUTF-8にしろというので全部UTF-8にした。メタに合わせろってんでそも試した。でもそれってデータベースには全く関係ないんですね。
ページのエンコーディングをUTF-8にするとColdFusionからMySQLに日本語データを挿入すると、空白が挿入されてしまいます。もう一度サポートページを観てみるとデータベースの文字セットは「EUC-JPがサポートされています」とのこと。これが原因かな…とEUCでやってみてもダメ。(※数時間後もう一度観てみたら「UTF-8がサポートされています」に変更されてました(笑))しかしEUC-JPとかにしてもバケラッタで挿入されてしまう…。
phpMyAdminから入力するとちゃんとデータは挿入されるのですが、ColdFusionから取り出した時にバケラッタします。

どうしたモノかとイロイロ調べてみたら。
hetemlのユーザーフォーラムに下記の書き込みを発見。
https://admin.heteml.jp/forum/?e=search&qr=mysql+%C6%FC%CB%DC%B8%EC&x=0&y=0
yoshiさん本当にありがとうございます。


最初に実行するクエリで
SET NAMES ujis
を指示すればすべて解決でした。hetemlではColdFusionもMySQLもUTF-8のはずなのに何故にujisをセットする必要があるのでしょうか…。謎です。hetemlがLinuxサーバーであることに起因しているのでしょうか。
とりあえずこれでデータベースの文字化けは解決しました。

cfmごとに実行するのは面倒だし記述忘れがあると困るのでApplication.cfcで
<cfquery name="" datasource="datasauce" username="username" password="password">
SET NAMES ujis
</cfquery>
(※アメーバブログでは<>に囲われた文字列ががタグとして扱われて非表示になってしまうので、全角の「<>」を使っています。実際に利用する時は半角に直してください。)
を実行しています。
これで万事OK。しかしこれで12時間以上悩んだんだよな…。いくらデータベースはサポート外とは言えそんぐらいの情報はよこせheteml。まぁ、これさえクリアしちゃえば機能、コストパフォーマンスでは言う事なしなので良しとするか…。
ちなみにフューチャリズムワークスではWindowsでColdFusionを稼働しているのでこんな問題は起こりません。