- PR -

JAVAのコンパイルで文字化けが発生します。

投稿者投稿内容
ayum
常連さん
会議室デビュー日: 2002/03/28
投稿数: 44
お住まい・勤務地: 東京
投稿日時: 2004-04-07 19:39
よくやるのが、SJIS系のソースをそのままFTPで変換なしで転送して、
SolarisやLinux上でvi等で編集して保存してしまうというもの。
viでSJIS系のコードをEUCとかで開いてしまい、
開いた時点で文字化けた日本語を文字化けたまま保存してしまっていませんか?
サーバ上のソースをローカルに落として開いてみて、
文字化けを起こしてないかどうか確認してみてはいかがでしょうか。
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-04-07 19:47
引用:

fwixさんの書き込み (2004-04-07 18:47) より:

1本目のソースは、マシン1、マシン2どちらでコンパイルしても化けません。
2本目のソースは、マシン1では化けますが、マシン2では化けません。




でしたら、マシン1で、両方のソースを 『同じ文字コードで』 開いてみれば
なにか分かるんじゃないですか?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-04-07 20:37
>例えばコンパイルするときにSolarisのrootユーザか一般ユーザか
>ということは関係ないですよね?
javac はデフォルトのエンコーディングを使うんで、例えば root のLANGがCで、一般ユーザがja_JP.eucjpだったりすれば変わりますね。
コンピュータなんで、挙動が違うのであればかなりの確立でなにか状況が違うはずです。どのようなときに文字化けが発生するのか切り分けてみましょう。

[ メッセージ編集済み 編集者: インギ 編集日時 2004-04-07 20:38 ]
fwix
会議室デビュー日: 2004/04/07
投稿数: 7
投稿日時: 2004-04-07 20:52
インギさんの書き込み (2004-04-07 20:37) より:
>例えばコンパイルするときにSolarisのrootユーザか一般ユーザか
>ということは関係ないですよね?
javac はデフォルトのエンコーディングを使うんで、例えば root のLANGがCで、一般ユーザがja_JP.eucjpだったりすれば変わりますね。

回答ありがとうございます。
viで見たとき、一般ユーザでは化けていませんが、rootでは化けていたと思います。
もちろんLANGの設定ですが、コンパイルに影響しているのであれば関係ありそうですね。
確認してみます。
fwix
会議室デビュー日: 2004/04/07
投稿数: 7
投稿日時: 2004-04-07 20:59
たくさんのアドバイスありがとうございます。>皆様
こちらで整理して確認してみます。
fwix
会議室デビュー日: 2004/04/07
投稿数: 7
投稿日時: 2004-04-08 15:06
引用:

fwixさんの書き込み (2004-04-07 20:59) より:
たくさんのアドバイスありがとうございます。>皆様
こちらで整理して確認してみます。



解決しました。
原因はrootでコンパイルしていたことでした。
rootのLANGはCで、一般ユーザはSJISで、一般ユーザは-encodingを
つけなくても化けないようになっていました。
皆様ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)