首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4j2在没有混淆字符的情况下写入CSV

Log4j2在没有混淆字符的情况下写入CSV
EN

Stack Overflow用户
提问于 2022-04-20 16:32:40
回答 1查看 122关注 0票数 0

我使用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

代码语言:javascript
复制
<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>

谢谢你的帮助和建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-20 18:57:22

如果您希望在文件的开头有一个BOM,只需要在header参数的开头插入它:

代码语言:javascript
复制
<CsvParameterLayout delimiter="," 
                    format="Excel"
                    header="&#xFEFF;id,question,answer\n"
                    charset="UTF-8" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71943217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档