java utf 8标准输出,java – 当我编写相同的UTF-8时,为什么Log4J2输出在两个系统上有所不同?...

我正在将Unicode字符写入Log4J2日志.在一台机器上(Windows 8),我在日志中看到了这一点:

2016-08-30 16:44:00.958|English: The quick brown fox jumped over the lazy dog.

2016-08-30 16:44:00.960|German: Falsches Üben von Xylophonmusik quält jeden größeren Zwerg.

2016-08-30 16:44:00.960|Russian 1: В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!

2016-08-30 16:44:00.960|Russian 2: Съешь же ещё этих мягких французских булок да выпей чаю.

2016-08-30 16:44:00.960|Chinese: 中国智造,慧及全球

2016-08-30 16:44:00.960|Japanese: いろはにほへと ちりぬるを わかよたれそ つねならむ うゐのおくやま けふこえて あさきゆめみし ゑひもせす

2016-08-30 16:44:00.960|Korean: 다람쥐 헌 쳇바퀴에 타고파

在另一台计算机(Windows Server 2012R2)上,我看到:

2016-08-30 16:50:41.676|English: The quick brown fox jumped over the lazy dog.

2016-08-30 16:50:41.676|German: Falsches Üben von Xylophonmusik quält jeden größeren Zwerg.

2016-08-30 16:50:41.676|Russian 1: ? ????? ??? ??? ?? ??????? ??, ?? ????????? ?????????!

2016-08-30 16:50:41.676|Russian 2: ????? ?? ??? ???? ?????? ??????????? ????? ?? ????? ???.

2016-08-30 16:50:41.676|Chinese: ?????????

2016-08-30 16:50:41.676|Japanese: ??????? ????? ?????? ????? ??????? ????? ??????? ?????

2016-08-30 16:50:41.676|Korean: ??? ? ???? ???

如果Log4J2默认写入UTF-8,为什么第二个系统上的日志文件只包含问号?也就是说,第二个系统可能(也可能是)缺少字体,但第二个系统上的日志文件本身包含实际问号,当使用hexdump工具时,我希望至少看到UTF-8字符的二进制文件在文件中.换句话说,我可以理解为什么未知字符可能会错误地呈现,我只是不明白为什么正确的Unicode没有写入文件,如果编写的进程是JVM,它使用Unicode作为字符.

解决方法:

您是否尝试在Log4j配置文件中为Log4j布局强制执行UTF-8字符集?例如,使用PatternLayout:

...

...

标签:java,utf-8,log4j2,windows-server-2012-r2,logging

来源: https://codeday.me/bug/20190717/1487739.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值