Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java编写UTF-8文件_Java_Utf 8 - Fatal编程技术网

使用java编写UTF-8文件

使用java编写UTF-8文件,java,utf-8,Java,Utf 8,我正在尝试编写一个java实用程序,它只使用我明确写入文件的字符来写出一个UTF-8文件。我编写了下面的代码来实现这个技巧 import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; public class FileGenerator { public static void main(S

我正在尝试编写一个java实用程序,它只使用我明确写入文件的字符来写出一个UTF-8文件。我编写了下面的代码来实现这个技巧

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;


public class FileGenerator {

    public static void main(String[] args) {
        try {

            char content = 0xb5;

            String filename = "SPTestOutputFile.txt";

            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
                        new FileOutputStream(filename), "UTF-8"));

            bw.write(content);
            bw.close();

            System.out.println("Done");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
我还将-Dfile.encoding=UTF-8作为VM参数传递

我尝试写入的字符确实会写入到文件中,但我也会在它之前得到a,所以当我尝试写入µ时,我实际上得到了µ。有人知道如何纠正这一点,使我总是得到公正的评价吗


谢谢

实现工作得很好:
µ
的UTF-8表示形式是
c2 b5
。这正是写入文件的内容

检查UTF-8表


您的txt文件包含两个“符号”:

  • 物料清单()
  • µ
  • 如果应用程序(某些阅读器)正确识别编码,则只能看到
    µ
    。
    在其他情况下,应用程序将BOM解释为另一个符号,您可以看到
    µ
    或其他内容


    因此,您的文本文件是正常的。

    事实上,当使用不解释UTF8序列的查看器读取文本文件时,您得到的是单个文本的正确UTF8序列。所以请澄清你的“我真的得到…”看起来不错;检查此表:
    µ
    c2 b5
    -确切地说是写入文件的内容。好的,谢谢大家。我不确定这两个符号是否是文件的问题,以便清除它,谢谢。