我正在使用 Log4j2 撰寫一個output.csv帶有 UTF-8 字符集的檔案。
輸出完成后,一切正常。但是當我output.csv用Excel-2016打開時,每個漢字都變成了亂碼。
我注意到 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>
感謝您的幫助和建議!
uj5u.com熱心網友回復:
如果你想在檔案的開頭有一個BOM,你只需要在header引數的開頭插入它:
<CsvParameterLayout delimiter=","
format="Excel"
header="id,question,answer\n"
charset="UTF-8" />
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/461475.html
