NLog 不能正确写入变音符号 [重复]

Posted

技术标签:

【中文标题】NLog 不能正确写入变音符号 [重复]【英文标题】:NLog doesn't writes diacritics chars properly [duplicate] 【发布时间】:2021-11-14 03:25:18 【问题描述】:

我正在尝试使用 nlog 将消息记录到文件中。我的问题是,每当我尝试将波兰字符用作“ąćęśł”时,它们在日志文件中显示为 ¹æê³。其他国家的特殊字符确实有效(如 ä ö 等)。可能是什么问题? 这就是我的 nlog.config 开头的样子:

  <?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          autoReload="true"
          internalLogLevel="Info">

        <targets>
            <target
                xsi:type="File"
                name="allInfo"
                fileName="$whenEmpty:whenEmpty=$basedir:inner=$configsetting:item=PathToFiles/logs/$shortdate.log"
                layout="$longdate $uppercase:$level $message"
                archiveEvery="Month"
                archiveFileName="$whenEmpty:whenEmpty=$basedir:inner=$configsetting:item=PathToFiles/logs/archive/log-$shortdate.log"
                maxArchiveFiles="50"/>
        </targets>

        <rules>
            <logger
                name="*"
                minlevel="Trace"
                writeTo="allInfo"/>
        </rules>
    </nlog>
</configuration>

正如您所见,utf-8 就在那里。不知道如何解决。

【问题讨论】:

那是配置文件的编码,与配置nlog本身无关。请也显示文件的其余部分。 @AKX 编辑后的帖子 编码是UTF8 不是utf-8 【参考方案1】:

添加encoding="utf-8"to the file target。

encoding - 文件编码名称,如“utf-8”、“ascii”或“utf-16”。请参阅 MSDN 上的编码类。默认为 Encoding.Default。

<target
    xsi:type="File"
    name="allInfo"
    ...
    encoding="utf-8"
/>

【讨论】:

以上是关于NLog 不能正确写入变音符号 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从雪花中的字符串中删除变音符号[重复]

C#中的字符串替换变音符号[重复]

LUA:如何正确读取带有重音字母和变音符号的 UFT8 文件名和路径?

从 Android 应用程序调用 PHP REST API 无法正确显示变音符号 (äüö)

PDF中的德语变音符号

Azure 机器学习批处理请求返回带有 Unix 的格式错误的变音符号