--
--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Tag:

25
2008

Runtime#exec で日本語が渡せない(未解決)

CATEGORYJava
Webアプリから Runtime#execnamazu を呼び出すような対応を実施。
ところが、テスト用にこっちで準備した環境ではうまくいくものの、もらった評価用の環境では、日本語がうまく通らない。

環境はいずれも Solaris8 で、jdkは1.3.1_23という骨董品。

どうも実際に動いている環境では、Webコンテナの起動時に環境変数 LANG が指定されておらず、英語な状態になっていた模様。
Namazu で日本語を扱うには LANG=ja が必要らしいので、渡してやればいいかな?と Runtime#exec に引数で環境変数を渡してみる

・・・がやっぱりうまくいかない。
NMZ.slog を見ると、検索キーワードが ??? となっていて、そもそもnamazuまでちゃんと渡っていない模様。

どうも試した限り、Runtime#exec の引数がプラットフォームのデフォルトの文字コードに変換されて、実行されているっぽい。
LANG=ja なら日本語は EUC_JP_Solaris に変換されるので問題ないが、LANG が無い状態では英語系の文字コードに変換され、その際に日本語の文字列は破壊されてしまうようだ・・・。

file.encoding を一時的に変えられないかとか、getBytes() を使ういつもの方法で変換すれば・・・とか考えるも、結局試しているうちに、諦めて素直に LANG=ja でWebコンテナを起動するようにしましょう、影響範囲甚大だけど。というお達しがでて未解決にorz
う~ん、方法ないのかなぁ?
スポンサーサイト

Tag: Java

0 Comments

Leave a comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。