プログラマ ずんべ の日記

zunbe

プログラマ ずんべ の日記
プログラマ ずんべ の日記

探し物は見つかりましたか? サイト内検索を試してください。

「ずばヒットアマゾン」 for Ajax (2) 「ずばヒットアマゾン」 for Ajax (2) お食い初め お食い初め

2006/07/15

【ソフトウェア】SJISで大ハマリ(2)

このエピソードの続き。

 2006/06/28 SJISで大ハマリ

先の大ハマリは、社内の開発環境に Namazu をインストールしたときにハマった話であるが、納品先となるターゲットのサーバでも、またハマってしまった。

コンパイル、インストールは問題なく終了。
インデックスを生成し、検索フォームを準備。
検索してみると…あれあれ?
namazu.cgi がハングアップ状態になってしまう。
サーバのCPUリソースもかなり食われてしまい、動作中のプロセスの確認もおぼつかない。
しばらく待っていると、apache の実行制限時間にかかって停止した。

 プログラマ ずんべ の日記:SJISで大ハマリ(2)
 実行制限にかかって停止

ん~?
どういうことだ?
環境変数 LANG は、きちんと ja_JP.SJIS に設定されている。
問題ないはずだ。

試しに環境変数 LANG を ja_JP.eucJP に変えて検索してみると、きちんと出力される。
問題ない。

社内の開発環境は RedHat Linux であったが、ターゲットは Solaris。
またしても SJIS が使えないのか?
どれどれ。

 $ LANG=ja_JP.SJIS locale
 LANG=ja_JP.SJIS
 LC_CTYPE="C"
 LC_NUMERIC="C"
 LC_TIME="C"
 LC_COLLATE="C"
 LC_MONETARY="C"
 LC_MESSAGES="C"
 LC_ALL=

げっ!
LANG に ja_JP.SJIS を設定すると、選択されるロケールが「C」?
むむむ…。
試しに、EUCだと…。

 $ LANG=ja_JP.eucJP locale
 LANG=ja_JP.eucJP
 LC_CTYPE="ja_JP.eucJP"
 LC_NUMERIC="ja_JP.eucJP"
 LC_TIME="ja_JP.eucJP"
 LC_COLLATE="ja_JP.eucJP"
 LC_MONETARY="ja_JP.eucJP"
 LC_MESSAGES="ja_JP.eucJP"
 LC_ALL=

きちんとEUCコードが選択されている。
う~ん、困った、どうするか。

ターゲットのサーバの設定を勝手に変更するわけにはいかないので、ソフト的になんとかするしかない。
悩んで悩んで、こんな形で解決した。

まず、namazu をEUCコードで動作する様に設定。
次に、以下のプログラムを介して namazu.cgi を呼び出すように修正。

 #!/usr/bin/perl
 print `./namazu.cgi | /usr/local/bin/nkf -s`;

少々強引な気もするが(^^;)、解決。

今後、SJIS は消えていく運命にあるのだろうか?
個人的には、漢字コードが統一化される事は喜ばしいと思っているが、やはり、統一先は UNICODE になるのだろうか。

■参考文献

改訂 Namazuシステムの構築と活用
改訂
Namazuシステムの
構築と活用
Solaris 10 スーパーユーザーハンドブック
Solaris 10
スーパーユーザー
ハンドブック



このエピソードはいかがでしたか?

投稿者 zunbe : 2006/07/15 17:43:27


トラックバック 〔http://blog.zunbe.com/mt/mt-tb.cgi/419〕

コメント

UNICODE、いやUTF-8でしょうね。世界的には。

私も個人的には統一される方がいいとは思ってます。
でもそれよりも、1バイトしか考えないで作ってあるソフトが未だにアメリカからとか平気で出てくることですね。せめて国際化を前提に作るように意識改革してもらわないと困るんですよ、特に商用ソフトは。頼むよSoftGrid・・。

投稿者 チャーリー栗原 : 2006/07/16 00:58:07

そうですね。UTF-8ですね。

文字コード系が4つも5つもあるのは、きっと日本だけでしょうけど、何をするにも漢字コードをいちいち変換しなきゃならないのは、面倒くさいし、リソースも食うし、変換ミスが起こるし、いい事ないので、UTF-8に統一する方向で進んでほしいですね。

ソフトウェア関連だと、「統一規格」が制定されても、一向に古い規格が消えていかず、「統一規格」は、結局、「新しい規格が増えた」となる事が多いと思いますが、漢字コードに関しては、Windowsも内部処理は既にUNICODEに移行しているはずだし、SJISがサポートされなくなりつつある現状から、順次統一されていくのかな…と思っていますが、まだまだ長い時間がかかるでしょうね。

投稿者 ずんべ : 2006/07/16 02:09:00


コメントしてください






保存しますか?


スパム対策:
この入力フィールドに「517」と入力してください。


プログラマ ずんべ の日記:ずばヒット アマゾン