- PR -

Javaのプラットフォーム互換(文字エンコード)

投稿者投稿内容
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2001-11-05 08:33
3053...306fはちゃんと出てます。やっぱり実行環境ですか。一応
コード:
LANG=ja_JP.eucJP java HelloWorld

(とja_JP.SJIS)を試したんですがだめでした。あと、最初に
コード:
System.setProperty("file.encoding", "SJIS");

とシステム設定を変更してみたのですがやっぱりだめでした。

日本語にフル対応しているとは思わないので、しょむさんの言われる道理jdk か jvm か glibc の設定がおかしいのしょうね。(多分glibc?)大学のであまり勝手にごちゃごちゃとやると叱られそうなので、あまり詳しいことはわかりませんが。

オリジナルのHelloWorld.javaを家にあるRedHat7.1(英語)でコンパイルしたのを大学の(debian)に転送して実行したらちゃんと動きました。おそらくglibcあたりの設定が怪しく思います。予想としては、コンパイル時に外部ライブラリを使っていて、文字コードはそれに頼っているからではないでしょうか。(あれ?それってプラットフォーム非依存って言えない!?)
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-11-05 15:50
コードのダンプはうまくいっているということは、コンパイラのほうは大丈夫→.class の platform independency の問題ではない、ですね。

glibc が…というのはちょっと考えにくいような…
そもそも、Java はコード変換マップを自前で持ってますから。

H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2001-11-06 00:53
あ、こんなのを見つけました。少し症状が違うのですが、もしかしたら?
'−'や'〜'が文字化けします。他の文字は文字化けしていないのになぜ?
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-11-06 09:26
いえ、違います。
それは http://rh.vinelinux.org/~shom/sjisprob.html にある 9 文字にしか起こらない状態です。また、Shift_JIS を受け取ったり吐き出したりする時にのみ起こりえますし、Java2 では(ちょっとばーたーな)対処がなされてますので。

心配だったら、エンコーディング名として Shift_JIS のかわりに MS932 を使ってください。これですべて回避できる問題です。< 「〜−」問題

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