Windows 事件日志使用啥字符集/编码?

Posted

技术标签:

【中文标题】Windows 事件日志使用啥字符集/编码?【英文标题】:What character set / encoding does the windows event log use?Windows 事件日志使用什么字符集/编码? 【发布时间】:2013-09-06 10:36:51 【问题描述】:

背景:

我正在研究一种解决方案,其中包括从多个国家/地区写入数据并从 Windows 事件日志中读取数据(例如,如果处理客户记录时出现异常,我可能会在描述文本中包含客户的姓名以使其更多人类可读;客户的姓名可能需要其语言中的特殊字符 - 我们永远不会将 Prince 作为客户)。 我正在编写和阅读,因为我们业务中的各种系统正在编写,同时我正在定义将读取和处理事件日志数据的监控系统。

我在 Google 上查看过,但找不到任何相关信息。 查看事件的 XML 视图,没有定义文件头/编码属性。 我假设它在更高版本中是 UTF-8,但找不到此文档/如果旧版本支持该编码,我会感到惊讶。

问题:

Windows 事件日志使用什么字符集? 所有版本的 Windows 都一样吗?

【问题讨论】:

所有 Windows winapi 函数和内部数据结构都使用 utf-16 编码字符串,事件日志也是如此。只有使用旧的 ReportEventA() 函数才会遇到麻烦。 太棒了,谢谢汉斯。如果你把它放在答案中,我会给你打分。 JB 【参考方案1】:

根据Hans Passant 的评论:

所有 Windows winapi 函数和内部数据结构都使用 utf-16 编码字符串,事件日志也是如此。你只能进入 使用旧的 ReportEventA() 函数会遇到麻烦。

【讨论】:

相关的文档链接会很有帮助。我找到了这个docs.microsoft.com/en-us/windows/desktop/Intl/unicode,但希望得到更明确的东西......

以上是关于Windows 事件日志使用啥字符集/编码?的主要内容,如果未能解决你的问题,请参考以下文章

AWS CloudWatch 中的指标、日志和事件之间有啥区别? [关闭]

查询过去两周的windows事件日志

怎样调用windows系统日志

如何使用不存在的源写入 Windows 事件日志记录

使用rsync备份Windows事件日志

Windows 将来自 Windows 服务的事件日志存储多长时间