为什么log4net日志消息有一些未知字符?

为什么log4net日志消息有一些未知字符?,log4net,Log4net,我使用log4net来记录日志。 并在此处使用配置(仅记录消息): 但是,当我打开日志文件时,如果使用UTF-8编码,则行消息似乎正常。如果在ANSI编码中,这些消息行的开头有一个未知字符。 请看这里: <?xml version="1.0" encoding="utf-8"?><UrlTrackingObj><Url>mysite</Url><Action>view</Action><Ip>::1&l

我使用log4net来记录日志。 并在此处使用配置(仅记录消息):


但是,当我打开日志文件时,如果使用UTF-8编码,则行消息似乎正常。如果在ANSI编码中,这些消息行的开头有一个未知字符。 请看这里:

<?xml version="1.0" encoding="utf-8"?><UrlTrackingObj><Url>mysite</Url><Action>view</Action><Ip>::1</Ip><Os>Windows 8.1</Os><Browser>Chrome 59.0</Browser></UrlTrackingObj>
mysiteview::1Windows 8.1Chrome 59.0 然后,当我的应用程序读取日志行时,它可以读取并处理此字符。 我的配置有什么问题?或者有什么办法可以解决这个问题? 我只想要我的日志行:

<?xml version="1.0" encoding="utf-8"?><UrlTrackingObj><Url>mysite</Url><Action>view</Action><Ip>::1</Ip><Os>Windows 8.1</Os><Browser>Chrome 59.0</Browser></UrlTrackingObj>
mysiteview::1Windows 8.1Chrome 59.0

这些字符是:

BOM的UTF-8表示为(十六进制)字节序列 0xEF,0xBB,0xBF。错误解释文本的文本编辑器或web浏览器 ISO-8859-1或CP1252将为此显示字符

您可以使用其他编码类而不是默认编码类来抑制
BOM
,例如:

<encoding type="System.Text.UTF8Encoding"/>


这意味着我必须将
替换为
?@SonNguyen ukm只需将
类型
属性添加到
编码
标记。@SonNguyen如果有助于解决您的问题,您应该接受答案,这对以后的用户非常有用。:)请参考:这帮助我在使用
<encoding type="System.Text.UTF8Encoding"/>