<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 28, 2022 at 10:32 AM Ulrich Windl <<a href="mailto:Ulrich.Windl@rz.uni-regensburg.de">Ulrich.Windl@rz.uni-regensburg.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">>>> Mantas Mikulenas <<a href="mailto:grawity@gmail.com" target="_blank">grawity@gmail.com</a>> schrieb am 27.04.2022 um 12:03 in<br>
Nachricht<br>
<<a href="mailto:CAPWNY8XO0tu6EdpJO538qyGBJ0kOmZo5iCaoJpPc8kt4QZ%2BvXg@mail.gmail.com" target="_blank">CAPWNY8XO0tu6EdpJO538qyGBJ0kOmZo5iCaoJpPc8kt4QZ+vXg@mail.gmail.com</a>>:<br>
> On Wed, Apr 27, 2022 at 10:09 AM Ulrich Windl <<br>
> <a href="mailto:Ulrich.Windl@rz.uni-regensburg.de" target="_blank">Ulrich.Windl@rz.uni-regensburg.de</a>> wrote:<br>
> <br>
>> Hi!<br>
>><br>
>> Having written an RFC 3164 compatible syslog daemon, I noticed that<br>
systemd<br>
>> created syslog messages with non-ASCII characters.<br>
>> The problem is that a remote syslogd can hardly guess the correct<br>
character<br>
>> set (I'm using rsyslog to forward local messages to a remote server).<br>
>><br>
>> Example of such message:<br>
>> systemd-tmpfiles[3311]: [/usr/lib/tmpfiles.d/svnserve.conf:1] Line<br>
>> references<br>
>> path below legacy directory /var/run/, updating /var/run/svnserve →<br>
>> /run/svnserve; please update the tmpfiles.d/ drop-in file accordingly.<br>
>><br>
>> (The arrow is encoded as three bytes (\xe2\x86\x92))<br>
>><br>
>> RFC 5425 syslog messages require the use of a BOM (%<a href="http://xEF.BB.BF" rel="noreferrer" target="_blank">xEF.BB.BF</a>) at the<br>
>> beginning of a message if the message used UTF-8:<br>
>><br>
>>       MSG             = MSG-ANY / MSG-UTF8<br>
>>       MSG-ANY         = *OCTET ; not starting with BOM<br>
>>       MSG-UTF8        = BOM UTF-8-STRING<br>
>>       BOM             = %<a href="http://xEF.BB.BF" rel="noreferrer" target="_blank">xEF.BB.BF</a><br>
>><br>
>> Wouldn't it make sense to add such a BOM for RFC 3164 syslog messages also<br>
>> if<br>
>> non-ASCII (i.e.: UTF-8) encoded characters are used?<br>
>><br>
> <br>
> RFC 3164 over a local socket from journald to local rsyslogd? The local<br>
<br>
Actually I wasn't quite sure about the default config in SLES12.<br>
It seems the flow is journald -> local rsyslogd -> remote syslogd<br>
<br>
> rsyslogd already knows if messages are UTF-8 because the system's $LANG<br>
> (well, nl_langinfo) says so. And if rsyslog can't trust that for some<br>
> reason (e.g. because a user might have a different locale), then<br>
> systemd-journald won't be able to trust it either, so it won't know whether<br>
> it could add the BOM.<br>
<br>
How could a remote syslog server know what the locale on the sending system<br>
is?<br></blockquote><div><br></div><div>It's not remote, it's local. I'm talking about the one that's receiving messages from journald on the same machine.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> <br>
> RFC 3164 over the network to a remote server? Outside the scope for<br>
> systemd, since it doesn't generate the network packets; your local rsyslogd<br>
> forwarder does. (Also, why RFC 3164 and not 5425?)<br>
<br>
If you look outside the world of systemd, about 99% of systems create the RFC<br>
3164 type of messages.<br>
Some may send non-ASCII too, however.<br></blockquote><div><br></div><div>Still outside the scope of systemd. Systemd doesn't send RFC 3164 messages over the network, either.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> <br>
> Generally, if a message successfully decodes as UTF-8 then it's most likely<br>
> actual UTF-8 (and if UTF-8 decode fails then you fall back to ISO8859-1).<br>
> Various old systems get away with this without needing a UTF-8 BOM.<br>
<br>
Yes, you can just output what you received, hoping the messages will be<br>
presented correctly.<br>
I't just like sending 8-bit E-Mmail without a coding system or charset in the<br>
past.<br clear="all"></blockquote><div><br></div><div>Which is not what I was saying, but sure, whatever. <br></div></div><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">Mantas Mikulėnas</div></div></div>