我使用font-awesome 4.4.0并使用新的电池图标扩展了默认的i3blocks电池脚本。
所有似乎都正常工作,但fa-battery-half Unicode: f242
,使脚本无用。 unicode似乎也引用了字符
。
在终端中,它崩溃了:
$ perl /usr/share/i3blocks/battery
Wide character in print at /usr/share/i3blocks/battery line 65.
28% (01:02)
Wide character in print at /usr/share/i3blocks/battery line 66.
28%
#000000
该脚本是默认的,除了以下几行:
if ($status eq 'Discharging') {
if ($percent < 10) {
$full_text .= ' ';
} elsif ($percent < 25) {
$full_text .= ' ';
} elsif ($percent < 50) {
$full_text .= ' ';
} elsif ($percent < 75) {
$full_text .= ' ';
} elsif ($percent < 100) {
$full_text .= ' ';
}
} elsif ($status eq 'Charging') {
$full_text .= ' ';
}
和
if ($status eq 'Discharging') {
if ($percent < 25) {
print "#FF003C\n";
} else {
print "#000000\n";
}
if ($percent < 5) {
exit(33);
}
}
在编辑器中,脚本如下所示:
如何使用fa-battery-half Unicode: f242
图标让脚本生效。
答案 0 :(得分:5)
你有两个问题。
你的第一个问题是一个导致&#34;宽字符的错误&#34;警告和可能的其他问题。要解决该错误,请对输出进行正确编码。具体来说,将以下内容添加到脚本中:
use open ':std', ':encoding(UTF-8)';
这告诉Perl
警告表明Perl能够注意到您的错误,并尝试通过使用UTF-8对输出进行编码来修复它。这是正确的解决方案,因此您的计划输出不会发生变化,这会带来第二个问题。
您的第二个问题是您的终端字体没有U + F242的字形。如果您希望显示该字符,则需要使用其他字体。