i3blocks.conf 错误无法解析 JSON 词法错误

i3blocks.conf 错误无法解析 JSON 词法错误

我的中有这个错误/etc/i3blocks.conf

Error: Could not parse JSON (lexical error: invalid bytes in UTF8 string.)

我的代码/etc/i3blocks.conf看起来像这样。

[rss]
command=rsstail -n1 -1 -N -u https://stackexchange.com/feeds/questions | head -c 50
color=#00FF00
interval=300

[rss]
command=rsstail -n1 -1 -N -u https://unix.stackexchange.com/feeds | head -c 50
color=#00FF00
interval=60

[rss]
command=rsstail -n1 -1 -N -u https://softwarerecs.stackexchange.com/feeds | head -c 50
color=#00FF00
interval=300

[rss]
command=rsstail -n1 -1 -N -u https://news.ycombinator.com/rss | head -c 50
color=#00FF00
interval=300

这是因为 RSS 标题包含不允许的字符。不然我就不会出现这个错误了。我该如何修复或处理我的此错误/etc/i3blocks.conf?那么,如果一个 RSS 频道不起作用,其他三个频道就会起作用吗?

答案1

head -c 50可能会导致问题,因为它可能会在中点切断 utf8 字节序列,从而创建错误的代码点。如果您需要使用它,您可以将多字符输出转换为每个字符仅使用 1 个字节的编码,例如 ascii 或 iso-8859-15。

只需在语言环境中将其设置为rsstail

command=LC_ALL=iso-8859-15 rsstail ...

或者,如果确实有来自 rsstail 的错误代码,并且假设 rsstail 的输出可能是 utf8,您可以通过管道传输输出iconv,要求它用其他内容音译错误代码:

command=rsstail ... | iconv -f UTF-8 -t iso-8859-15//TRANSLIT | head ...

相关内容