我使用Log4j2用UTF-8字符集编写output.csv文件.
输出完成后,一切正常工作。但是当我用Excel-2016打开output.csv时,每一个汉字都会变得乱七八糟。
我注意到Excel默认使用ANSI编码打开csv,因此许多UTF-8字符无法正确显示。解决方案之一是在我的byte order mark (BOM)开始时自己添加output.csv。
请参阅:java-how-to-add-and-remove-bom-from-utf-8-file
但我希望log4j2能为我做到这一点。有没有更好的解决方案/解决办法?
下面是log4j2.xml
<RollingFile
name="Chat-Appender"
fileName="${logSavePath}/output.csv"
filePattern="${logArchivePath}/output_%d{yyyy-MM-dd}.csv">
<CsvParameterLayout
delimiter=","
format="Excel"
header="id,question,answer\n"
charset="UTF-8" />
<Policies>
<TimeBasedTriggeringPolicy interval="1" />
</Policies>
</RollingFile>谢谢你的帮助和建议!
发布于 2022-04-20 18:57:22
如果您希望在文件的开头有一个BOM,只需要在header参数的开头插入它:
<CsvParameterLayout delimiter=","
format="Excel"
header="id,question,answer\n"
charset="UTF-8" />https://stackoverflow.com/questions/71943217
复制相似问题