当我尝试使用不同的编码编写测试字符串时,我试图理解为什么结果不同。 对于 StandardCharsets.UTF_16LE 结果是“测试”(似乎是正确的),而 对于StandardCharsets.UTF_16BE,结果是“t e s t”(似乎是错误的)。 有人可以解释一下为什么在 UTF_16BE 的情况下结果是字母之间有不必要的空格吗?
String filename="C:\\Users\\name\\Downloads\\debugging.txt";
String str="test";
File fl = new File(filename);
try (FileOutputStream fos = new FileOutputStream(fl);
//BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos, StandardCharsets.UTF_16LE))) {//seems does work
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos, StandardCharsets.UTF_16BE))) {//seems does not work
bw.write(str);
} catch (IOException ignored) {
//some actions
}