0

我编写了如下代码,

<Extension charconv>
    Module xm_charconv
    AutodetectCharsets utf-8, euc-jp, utf-16, utf-32, iso8859-2
</Extension>

和,

<Input sql-ERlogs>
    Module      im_file
    File 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL\MSSQL\Log\ER*'
    ReadFromLast TRUE
    Exec        convert_fields("AUTO", "utf-8"); if $raw_event == '' drop();
</Input>

我得到了如下图所示的输出

在此处输入图像描述

如果我扩展其中一个日志,我会得到这样的原始日志,

在此处输入图像描述

为什么它在展开之前是 Unicode 字符?

4

1 回答 1

0

我有同样的问题。原来“自动”不能可靠地工作。MS SQLSRV 上的 NXLOG 手册暗示了答案是什么;您必须指定类型,例如 UTF-16LE。

使用十六进制编辑器检查文件内容并与 MS 的图表进行比较https://msdn.microsoft.com/en-us/library/windows/desktop/dd374101%28v=vs.85%29.aspx

Exec    $Event = convert($raw_event,"UTF-16LE","UTF-8"); to_json();
于 2015-03-02T20:09:13.880 回答