내 컴퓨터에 이 오류가 있습니다./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 바이트 시퀀스가 끊어져 잘못된 코드 포인트가 생성될 수 있으므로 문제가 발생할 수 있습니다. 이를 사용해야 하는 경우 다중 문자 출력을 ascii 또는 iso-8859-15와 같이 문자당 1바이트만 사용하는 인코딩으로 변환할 수 있습니다.
로케일에서 다음과 같이 설정하십시오 rsstail
.
command=LC_ALL=iso-8859-15 rsstail ...
또는 rsstail의 오류 코드가 있고 rsstail의 출력이 아마도 utf8이라고 가정하는 경우 출력을 파이프 iconv
하고 다른 것으로 오류 코드를 음역하도록 요청할 수 있습니다.
command=rsstail ... | iconv -f UTF-8 -t iso-8859-15//TRANSLIT | head ...