きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

ずぶ濡れて文字化け

20時頃、飲みに行こうと話していたのだが、
あと1時間仕事させてと
後輩が言うものだから待ってたら、
電話が鳴った。

僕直通の番号なのに、
後輩当てかよ。。。

文字化けらしい。

けっきょく、飲みに行くのは立ち消え。
明日、行くことになった。
後輩は別の作業もあるだろうし、
文字コードに長けてるわけでもないから
僕が行くから明日行かなくていいと伝えた。

22時になり、僕は帰ることにした。
外は雨。
僕はあえて自転車をこいだ
危険な匂いがしたからかな。

電話をしてきたところに到着。
まだ何かやってれば手伝うし、
居なかったら帰るつもりだった。

あぁ、まだ居たのね。

22時半から解析して、
慣れない状況で手間取ったが、
26時過ぎには特定したので、
念のための確認が済むまで待って、
27時半に帰路についた。

オラクルはSJISチルダ。(AL16SJISTILDEだっけかな。)
VMがデフォルトとして使ってたのが、SHIFT_JIS
固定長ファイルの書き込みはMS932。

VMのデフォルトを調べる前に、
彼等が試していたSJISに変更した場合のファイル書き込みの設定、に加えてフレームワークの使い方誤りの箇所にもそのSJISで試した。

もう1パターンのフレームワークの使い方も試した。

うむ、SJISはダメなのかも。

テキストでMain作って、コンパイルして、環境に上げて、file.encodingを調べた。
SHIFT_JISだった。エイリアスだけの話ならいいけど、気持ち悪いと感じた。その辺りはうろ覚えだから、安全に事を進めようと考えた。

  • D指定されてないことは、WASのserver.xmlで調べた。

java -versionでIBM j9VMであることも見た。

完璧に環境を把握してる人がいれば楽なのだが、聞いても答えられないだろうから自分で解決させて頂きました。

さて、WINDOWS上でも実験をした。
該当の文字は、SHIFT_JISで化けるか?
MS932では化けるか?
Mainが大活躍。

結果として、MS932は化けなかった。

あぁ、無駄なことやってたっぽい。
指定を全部直したら化けなくなった。

やってトライな世界だが、
しっかりパターンを切り分け、
3回目のデプロイし直しで答えを出した。

つーかですね、MS932のほうから試してたら、1発で答えがでてたよ。。。

厳密に言うとwindows-31jだというのを知ってる人が1人いたのに驚いた。

環境も含めて、全てを確認していくことが出来ないと早期に問題は解決出来ないよ。

一つ残念だったのは、16進数表示させるオラクル関数までは思い出せなかったこと。

まあいいか。

どんとこい文字化け現象!!