Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何设置log4j版本2.3编码_Xml_Encoding_Utf 8_Log4j2 - Fatal编程技术网

Xml 如何设置log4j版本2.3编码

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

我在web应用程序中使用了log-4-j版本2.3。 一切正常,但Unicode字符在目标文件中记录为“?”。 如何将字符编码设置为Unicode 8以防止此问题? 以下是我的示例代码: 我已经编写了一个在eclipse上运行测试的主方法,它工作正常。但是,当从浏览器(我的应用程序服务器是weblogic)运行此jeryey web服务时,日志文件中的所有波斯语字符都显示为“?”:

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命令,它可以正常工作。很多。