Unix PARAM-VALUE可以包含空格吗?

Unix PARAM-VALUE可以包含空格吗?,unix,syslog,Unix,Syslog,阅读 参数值可以包含空格吗?或者它必须是一个单词的名称?阅读该部分的其余部分: 要支持国际字符,PARAM-VALUE字段必须为 使用UTF-8编码。系统日志应用程序可以发出任何有效的UTF-8 序列系统日志应用程序必须接受任何有效的UTF-8序列 以“最短形式”。如果控制字符为 存在于参数值中。syslog应用程序可以修改消息 包含控制字符(例如,通过更改值为0的八位字节 (USASCII NUL)改为四个字符“#000”)。因为 UNICODE TR36[UNICODE-TR36]第3.1节

阅读


参数值可以包含空格吗?或者它必须是一个单词的名称?

阅读该部分的其余部分:

要支持国际字符,PARAM-VALUE字段必须为 使用UTF-8编码。系统日志应用程序可以发出任何有效的UTF-8 序列系统日志应用程序必须接受任何有效的UTF-8序列 以“最短形式”。如果控制字符为 存在于参数值中。syslog应用程序可以修改消息 包含控制字符(例如,通过更改值为0的八位字节 (USASCII NUL)改为四个字符“#000”)。因为 UNICODE TR36[UNICODE-TR36]第3.1节中概述了发起人 必须以“最短形式”和收集器或中继对消息进行编码 不得以“非最短形式”解释消息

在PARAM-VALUE中,字符“'”(ABNF%d34)、“\”(ABNF%d92), 和']'(ABNF%d93)必须转义。这是避免 分析错误。严格来说,转义']'不是必需的,但是 本规范要求避免syslog应用程序 实现错误。这三个字符中的每一个都必须是 分别转义为“\”、“\\”和“\]”。使用反斜杠 用于控件字符转义,以确保其与 在syslog消息的其他部分以及在 传统的系统日志

后跟所述三个字符中任何一个的反斜杠(“\”) 被认为是无效的转义序列。在本例中,反斜杠 必须视为常规反斜杠,以下字符视为 规则的字符。因此,不能改变无效序列

空格字符当然可以是“有效UTF-8序列”的一部分。第二段引用了三个必须转义的字符;空格字符不是其中之一


结论:
PARAM-VALUE
字段可以包含空格。

阅读该部分的其余部分:

要支持国际字符,PARAM-VALUE字段必须为 使用UTF-8编码。系统日志应用程序可以发出任何有效的UTF-8 序列系统日志应用程序必须接受任何有效的UTF-8序列 以“最短形式”。如果控制字符为 存在于参数值中。syslog应用程序可以修改消息 包含控制字符(例如,通过更改值为0的八位字节 (USASCII NUL)改为四个字符“#000”)。因为 UNICODE TR36[UNICODE-TR36]第3.1节中概述了发起人 必须以“最短形式”和收集器或中继对消息进行编码 不得以“非最短形式”解释消息

在PARAM-VALUE中,字符“'”(ABNF%d34)、“\”(ABNF%d92), 和']'(ABNF%d93)必须转义。这是避免 分析错误。严格来说,转义']'不是必需的,但是 本规范要求避免syslog应用程序 实现错误。这三个字符中的每一个都必须是 分别转义为“\”、“\\”和“\]”。使用反斜杠 用于控件字符转义,以确保其与 在syslog消息的其他部分以及在 传统的系统日志

后跟所述三个字符中任何一个的反斜杠(“\”) 被认为是无效的转义序列。在本例中,反斜杠 必须视为常规反斜杠,以下字符视为 规则的字符。因此,不能改变无效序列

空格字符当然可以是“有效UTF-8序列”的一部分。第二段引用了三个必须转义的字符;空格字符不是其中之一

结论:
PARAM-VALUE
字段可以包含空格

6.3.3. SD-PARAM

   Each SD-PARAM consists of a name, referred to as PARAM-NAME, and a
   value, referred to as PARAM-VALUE.