gpt4 book ai didi

Java OutputStreamWriter UTF-16 CVS StartLine 上的错误字符

转载 作者:行者123 更新时间:2023-12-01 13:44:41 28 4
gpt4 key购买 nike

我需要使用OutputStreamWriter编写一个简单的CSV文件,一切正常OK,但我在第一个中遇到了问题CSV 上的标题 每行的左侧似乎都在此处的字符串 中错误地ADD 一个字符或它们的序列是我的Java代码

private final Character SEPARATOR=';'; 
private final Character LINE_FEED='\n';
public void createCSV(final String fileName)//......
{
try
(final OutputStream outputStream = new FileOutputStream(fileName);
final OutputStreamWriter writer=new OutputStreamWriter(outputStream,StandardCharsets.UTF_16);)
{
final StringBuilder builder = new StringBuilder().append("Fecha").append(SEPARATOR)
.append("NºExp").append(SEPARATOR)
.append("NºFactura").append(SEPARATOR).append(LINE_FEED);
writer.append(builder.toString());
writer.append(builder.toString());
writer.flush();
}catch (IOException e){e.printStackTrace();}
}

不幸的是,如果我在 CSV 中将相同的输出重复到第二行,那么我收到的此输出总是发生在第一行,一切顺利是 Java 问题还是我的 Excel 给我带来了噩梦? ?...非常感谢..

输出

enter image description here

最佳答案

这是一个多余的字节顺序标记(BOM),\uFFFE,一个零宽度的空格,它的字节编码用来确定是UTF-16LE(little endian)还是UTF-16- BE(大端)。

写入“UTF16-LE”,它具有 Windows/Intel 最低有效字节、最高有效字节的顺序。

StandardCharsets.UTF_16LE

关于Java OutputStreamWriter UTF-16 CVS StartLine 上的错误字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20443326/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com