在Java中写入文件后,日语字符变为垃圾

时间:2019-06-05 16:21:36

标签: java file utf-8 character-encoding inputstreamreader

当我读取inputStreamReader对象(仅指定编码的字符集)时,日语字符显示实际内容,但是当我检查物理文件的输出时,它包含 垃圾字符。 我有一个以下问题,请帮助我理解。

  1. 为什么物理文件变为垃圾文件?例如:用记事本打开的“¥”,“¥”,“¥”,“¥”。注意:在OpenOffice Calc上打开时相同 设置字符集会显示实际的日语字符。

  2. 在使用inputStreamReader进行读取(如果我指定了除 编码字符,实际内容变为垃圾。
    例如:根据我的理解,编码的字符集和 解码的字符集必须相同。*

我已经检查了答案String encoding conversion UTF-8 to SHIFT-JIS

但是我需要知道的是,假设解码时编码文件是不同的 如果我们使用UTF-8,是否有可能显示实际内容。

    OutputStream os = new FileOutputStream("japanese.txt");
    OutputStreamWriter osw = new OutputStreamWriter(os, "EUC-JP");
    osw.write("ピーター・ジョーズ");
    osw.flush();
    osw.close();

    InputStream ir = new FileInputStream("japanese.txt");
    InputStreamReader isr = new InputStreamReader(ir, "EUC-JP");
    int i =isr.read();
    while(i!=-1) {
        System.out.print((char)i);
        i=isr.read();
    }
    isr.close();

编码和解码-(EUC-JP)

ピーター・ジョーズ

编码-EUC-JP:解码-UTF-8

�ԡ����������硼��

0 个答案:

没有答案