我有这段代码将 BOM UTF-8 添加到 outputstream 。我需要添加 BOM,因为 Excel 不会隐式识别 UTF-8 编码,因此法语字符在 excel 中显示为奇怪的字符。
try {
response.setContentType(getContentType(request, response));
response.setContentLength(downloadData.length);
ServletOutputStream os = response.getOutputStream();
//Specify the BOM (Byte order Mask) for UTF-8 so that Excel can identify the encoding and open it in the correct format
os.write(new byte[] { (byte)0xEF, (byte)0xBB, (byte)0xBF });
os.write(downloadData);
os.flush();
response.flushBuffer();
} catch (IOException e) {
logger.error(e);
}
但是,当我将 outputstream 输出到文件时,不会打印最后一个字符。
任何想法为什么?
最佳答案
长度不是必须增加 3 才能考虑 BOM 吗?
关于java - 向 outputStream 添加 UTF-8 BOM 会导致最后一个字符无法在 java 中打印,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3964744/