6.4. MSG (сообщение)
Поле MSG содержит информацию о событии в свободной форме.
Данные в поле MSG РЕКОМЕНДУЕТСЯ представлять в UNICODE, используя кодировку UTF-8, как это описано в RFC 3629. Если приложение Syslog не в состоянии применять UNICODE, то оно МОЖЕТ использовать любую другую кодировку.
Приложениям Syslog РЕКОМЕНДУЕТСЯ избегать использования октетов, имеющих значение меньше 32 (традиционно, для US-ASCII в диапазоне от 0 до 31, включительно, находятся управляющие символы, за исключением символа DEL). Хотя октеты с такими значениями и являются допустимыми, но приложения Syslog МОГУТ заменять такие символы при приеме сообщений, например, последовательностями символов, использующих экранирование с помощью символа обратной наклонной черты \
. Например, октеты со значением 0 могут быть заменены на символьные последовательности \0
. Октеты, имеющие значение вне этого диапазона, приложениям Syslog изменять НЕ РЕКОМЕНДУЕТСЯ.
Если приложение Syslog использует кодировку UTF-8, то строка ДОЛЖНА начинаться с метки порядка байтов (Byte Order Mask, BOM — %xEF.BB.BF в терминах ABNF), являющейся признаком использования UTF-8. Приложения Syslog ДОЛЖНЫ применять кодировку UTF-8 в ее «кратчайшей форме» и МОГУТ использовать любые допустимые последовательности UTF-8.
Если приложение Syslog обнаруживает, что поле MSG начинается с BOM, но содержит строку не в «кратчайшей форме» кодировки UTF-8, то оно НЕ ДОЛЖНО интерпретировать его, как сообщение в кодировке UTF-8, по причинам, изложенным в разделе 3.1 UNICODE TR36 (см. Приложение A.8).
Таким образом, согласно UNICODE TR36, приложение Syslog вообще НЕ ДОЛЖНО интерпретировать сообщения, представленные не в «кратчайшей форме». Оно также НЕ ДОЛЖНО интерпретировать недопустимые последовательности UTF-8.