散々に 悩み続けた その答え
2009-06-29


今日は難解なバグに悩まされて頭を抱え続けること半日、定時を過ぎてから 1時間ほど経過した辺りで何とか回避策を見つける事ができたため帰宅する事はできたが、理論に基づいた解決法ではないためスッキリとしない。
今回の不具合は制作中のシステムで利用するデータベースの管理ファイルを全角文字を含むディレクトリへ配置すると正しく読み込めなくなってしまうという内容で、プログラムに詳しい人なら「ああ、文字エンコード問題か」とピンとくるような良く耳にする現象だ。

文字エンコード問題というのはプログラムの想定と実際のデータで文字コードが食い違っている時に文字列が正しく認識されずに発生する障害のことを意味する。
文字コードというのはPCが文字を表現するために使用する数値のことで、ひらがなの「あ」をどのような数値とするかを定義している。
困ったことに文字コードは一般的に使われているだけでもShiftJIS・EUC・UTF-8の 3種類があって、それぞれの互換性はほとんどないため文字コードを間違えて読み込むと全く意味不明な表示となってしまう。
インターネットでホームページを回っている時に文字化けと呼ばれる現象に見舞われた事があるかと思うが、あれが文字エンコード問題の代表例とだ。

今回の現象は画面上の表示ではなく、ファイルの置いてある場所を示す文字列が文字化けを起こしてしまい、ファイルが見つけられずにエラーに成ってしまうという不具合へと繋がっていた。
この原因はすぐに分かったのだが、解決法の方で色々と設定を変更していっても正しく上手く行かなくて 2時間ほど悩んだ所で八方塞がりとなってしまった。
いよいよ次の手も思い浮かばなくなって、考えようとする頭はオーバーヒート気味に頭痛なんか起こし始めて気分まで悪くなってきた。

疲れから意識を保つことさえも困難になってきた時、不意にT社員から文字エンコード問題を回避する手立てを発見したとの報告が入ったから驚いた。
しかも、その回避方法というのは「文字エンコードを特定しない」という物凄くシンプルな内容で、目から鱗が落ちるような思いだった。
本来なら文字エンコードは設定しないと正常に動作しない必須項目であるはずなのに、何も設定しなければ正常に動作するとか意味不明なこと極まりないが、強引な設定というわけでもない解決策として採用することになった。

それでも完璧に納得できているわけではないので気持ち悪さが残る。
ほんと、なんだってんだろう・・・
[雑記]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット