- PR -

文字化けについて

投稿者投稿内容
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2003-08-01 16:44
いつも一方的にお世話になっております。
さて質問ですが、掲題のとおり文字化けで悩んでおります。
UNIXからShift_JISのファイルを作成したいのですが、
全角のハイフン(−)が?に化けてしまいます。
原因が文字コードの扱いが違う為ということはなんとなくわかるのですが、
どのように対処してよいかわかりかねています。
どなたかお知恵を貸していただけたらと思います。
よろしくお願いします。
oku
会議室デビュー日: 2002/02/26
投稿数: 10
投稿日時: 2003-08-01 23:18
で、現在はどうやってファイルを作成しているのですか?
該当部分のコードを提示されたほうが適切な返信が付くかと思います。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-08-01 23:59
ものすごくよくある質問ですよ。
文字化け Java 〜 あたりをキーワードに検索しましょう。
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2003-08-04 19:53
レスありがとうございます。
現在は、
FileOutputStream out = new FileOutputStream("hoge");
byte[] buf = str.getBytes("Shift_JIS");
out.write(buf);
このような処理をしているだけです。
検索してみたところ、このような問題がたくさん出ているのは
わかるのですが、どのように対処していいのかよくわかりません。
参考となるサイトでも教えていただけると助かります
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2003-08-04 23:31
引用:

FileOutputStream out = new FileOutputStream("hoge");
byte[] buf = str.getBytes("Shift_JIS");
out.write(buf);



Byte stream, charactor streamをキーワードに調べれば幸せになるかもしれません。

また、先月号(2003年8月号)のJAVA WORLD誌の連載記事の中に入出力ストリームに関する話題がかかれているので、参考になるかもしれません。
oku
会議室デビュー日: 2002/02/26
投稿数: 10
投稿日時: 2003-08-05 04:34
JDK1.4以降をお使いですか?
とりあえず以下のように変更することで ? に変わってしまうことは避けられるかと思いますが、そうやって作成されたファイルを Windows環境で見ると文字化けしている可能性が高いです。
byte[] buf = str.getBytes("SJIS");


しかしながら、EUCJP -> Unicode -> MS932 への変換ではどうしても ハイフンや波線は化けてしまうのではないかと思うので、.javaファイルのエンコーディング自体を変えるなどする必要があるかもしれません。(strをどうやって得ているのかによって変わってきます)
BBC
常連さん
会議室デビュー日: 2002/03/15
投稿数: 37
お住まい・勤務地: 東京
投稿日時: 2003-08-05 08:49
こんにちは。

FileOutputStream out = new FileOutputStream("hoge");
byte[] buf = str.getBytes("MS932");
out.write(buf);

で文字化けは解消しませんか?

それと、関連する話がFAQとしてまとまっているリンクを。
http://www.gimlay.org/~javafaq/S146.html

[ メッセージ編集済み 編集者: BBC 編集日時 2003-08-05 08:53 ]
kito
ベテラン
会議室デビュー日: 2003/03/24
投稿数: 59
お住まい・勤務地: Osaka
投稿日時: 2003-08-05 11:51
引用:

とりあえず以下のように変更することで ? に変わってしまうことは避けられるかと思いますが、そうやって作成されたファイルを Windows環境で見ると文字化けしている可能性が高いです。
byte[] buf = str.getBytes("SJIS");


Shift_JISでの「〜」とWindows-31J(MS932)での「〜」は同じコードポイントに
割り当てられていますから、Windows環境で見たときに文字化けすることは無いです。
問題が起こるのはUnicodeとの相互変換のときのみです。

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