PARAM-VALUE可以包含空格吗?

时间:2011-11-01 05:26:03

标签: unix syslog

阅读syslog rfc

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.

param-value可以包含空格吗?或者它必须是一个单词的名字?

1 个答案:

答案 0 :(得分:3)

阅读该部分的其余部分:

  

要支持国际字符,PARAM-VALUE字段必须是   使用UTF-8编码。系统日志应用程序可以发出任何有效的UTF-8   序列。系统日志应用程序必须接受任何有效的UTF-8序列   在“最短的形式”。如果控制字符是,它绝不能失败   出现在PARAM-VALUE中。 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字段可以包含空格。