2007年1月15日月曜日

Lhaのバグ?

lhaで圧縮ファイル内にファイル名に0x5cのコードが含まれている場合SJIS運用のUnix系で
展開すると文字化けが起こる。
デフォルトのlhaでは圧縮、展開時にパスを扱う漢字コードが
Linux上ではEUC,Windows上ではSJISと決めうちになっているらしいです。
そのため、EUCではSJISでの0x5cを含むマルチバイト文字の特別処理が要らないため、
パスの中のを/に一括置換を行う処理になっているようです。
そのため、表の一部の0x5cが/になって文字化けを起こしています。
この問題を解決するためには、lhaをリコンパイルする必要があります。
lhaのリコンパイル時にコンパイルオプションで文字コードをSJISに設定
し、0x5cを含むマルチバイト文字の特別処理を行ってくれるようにします。
これにより、文字化けすることなく展開が行えます。


参考URL:
http://blogs.sun.com/nishigaya/entry/java_se_6_jar_improvements

0 件のコメント:

コメントを投稿