在UCS-2 Little Endian,Java中编写文本文件

Tun*_*erx 2 java encoding ucs2 writer

我正在尝试编写.txt文件,它必须是UCS-2 Little Endian,但是当我尝试时

writer = new PrintWriter(path, "UTF-16LE");
Run Code Online (Sandbox Code Playgroud)

从我读到的它应该是相同的,但它不会在服务器上的特定应用程序中工作.当我打开在Notepad ++中工作(手动创建)的文件时,它表示它是"UCS-2 Little Endian",但是当它用Java创建时,它表示"UCS-2 LE w/o BO"并且服务器无法读取它.

我该怎么写它才能起作用?这是完整的代码:

writer = new PrintWriter(path, "UTF-16LE");
for (int j = (i - itemsInPlaylist + 1); j <= i; j++) {
    writer.println(listParsedFile.get(j).getNameOfFile());
}
itemsInPlaylist = 0;
writer.close();
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何建议.

Jon*_*eet 9

听起来你需要先写一个字节顺序标记,这样你的应用程序就可以检测到编码.(目前还不清楚"它说"是什么意思 - 显然无论"它"是什么,都可以猜到它是UTF-16LE,但不如你获得BOM时那么可靠.)

所以只需添加:

writer.write("\uFEFF");
Run Code Online (Sandbox Code Playgroud)

在你写别的之前.