| No.135 | 投稿日時: | 2004/01/06(火) 15:52 <親記事> |
| 投稿者: | いの |
はじめまして、いのと申します。
Linux上でEUCのファイルを読み込んで別ファイルに書き込むプログラムを
作成していたところ文字化けが発生して困っております。
文字化けするコードは、I IIなどのローマ数字です。
直接byteで読込んだ場合は大丈夫なのですが
BufferedReaderなどで読込んだ場合に発生します。
byteで読込んだ場合でもStringに変換する過程で文字化けは発生します。
内部で文字処理をするのでStringに変換する方法はないでしょうか?
以下、駄目だったロジックです。
FileInputStream fis = new FileInputStream("ito.test");
byte[] bt = new byte[10];
fis.read(bt);
String eucString = new String(bt);
System.out.println(new String(eucString.getBytes("8859_1"), "EUC_JP"));
| No.136 | 投稿日時: | 2004/01/07(水) 00:10 <↑親記事:No.135> |
| 投稿者: | 森山 将之 |
Java の EUC_JP コンバータは機種依存文字には対応していませんから文字化けは不可避と思います。
Java で機種依存文字使うなら、UTF-8 や MS932 を使うしか方法はないと思います。
| No.138 | 投稿日時: | 2004/01/08(木) 19:45 <↑親記事:No.136> |
| 投稿者: | いの |
森山様
ご教授ありがとうございます。
返事が遅くなってしまい申し訳ありませんでした。