Xml 如何设置log4j版本2.3编码
我在web应用程序中使用了log-4-j版本2.3。 一切正常,但Unicode字符在目标文件中记录为“?”。 如何将字符编码设置为Unicode 8以防止此问题? 以下是我的示例代码: 我已经编写了一个在eclipse上运行测试的主方法,它工作正常。但是,当从浏览器(我的应用程序服务器是weblogic)运行此jeryey web服务时,日志文件中的所有波斯语字符都显示为“?”:Xml 如何设置log4j版本2.3编码,xml,encoding,utf-8,log4j2,Xml,Encoding,Utf 8,Log4j2,我在web应用程序中使用了log-4-j版本2.3。 一切正常,但Unicode字符在目标文件中记录为“?”。 如何将字符编码设置为Unicode 8以防止此问题? 以下是我的示例代码: 我已经编写了一个在eclipse上运行测试的主方法,它工作正常。但是,当从浏览器(我的应用程序服务器是weblogic)运行此jeryey web服务时,日志文件中的所有波斯语字符都显示为“?”: publicstaticvoidmain(字符串[]args){ UserRestServices服务=新的Use
publicstaticvoidmain(字符串[]args){
UserRestServices服务=新的UserRestServices();
service.test();
}
@路径(“测试”)
@得到
公共字符串测试(){
字符串新闻字符串;
试一试{
newString=新字符串(“getBytes(),“UTF8”);
APLogManager.infoLogger.info(新闻字符串);
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
返回“测试完成”;
}
您可以设置布局的字符集。例如:
<PatternLayout
charset="UTF-8"
pattern="%d %p %c{1.} [%t] %m%n" />
您可以设置布局的字符集。例如:
<PatternLayout
charset="UTF-8"
pattern="%d %p %c{1.} [%t] %m%n" />
它不起作用,我在问题细节中添加了一些新信息,以便更清楚地说明。当您创建newString对象时,您使用的是一个字节数组,表示平台默认字符编码中的波斯字符串。我想这不是UTF8。然后,通过告诉Java将这些字节解释为UTF8编码的字符串来创建newString对象。这将不起作用,并导致????输出,无论您使用log4j还是System.out.println。解决方案是将配置更改为设置charset=“UTF-8”
,然后只需记录波斯字符串,而不尝试手动转换编码:APLogManager.infoLogger.info(“فاسی”)代码>。通过将参数“-Dfile.encoding=UTF-8”添加到java命令,它可以正常工作。thanx很多。这不起作用,为了更清楚,我在问题细节中添加了一些新信息。当您创建newString对象时,您使用的字节数组表示平台默认字符编码中的波斯字符串。我想这不是UTF8。然后,通过告诉Java将这些字节解释为UTF8编码的字符串来创建newString对象。这将不起作用,并导致????输出,无论您使用log4j还是System.out.println。解决方案是将配置更改为设置charset=“UTF-8”
,然后只需记录波斯字符串,而不尝试手动转换编码:APLogManager.infoLogger.info(“فاسی”)代码>。通过将参数“-Dfile.encoding=UTF-8”添加到java命令,它可以正常工作。很多。