gpt4 book ai didi

perl - i3blocks 电池脚本,使用很棒的字体不适用于某些 unicode

转载 作者:行者123 更新时间:2023-12-04 15:09:50 26 4
gpt4 key购买 nike

我使用 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);
}
}

在编辑器中,脚本如下所示:

enter image description here

我如何使用 fa-battery-half Unicode: f242 使脚本正常工作图标。

最佳答案

你有两个问题。

您的第一个问题是导致“宽字符”警告和可能出现其他问题的错误。要解决该错误,请正确编码您的输出。具体来说,将以下内容添加到您的脚本中:

use open ':std', ':encoding(UTF-8)';

这告诉 Perl
  • 使用 UTF-8 编码发送到 STDOUT 的文本。
  • 使用 UTF-8 编码发送到 STDERR 的文本。
  • 使用 UTF-8 解码从 STDIN 读取的文本。
  • 使用 UTF-8 作为文件的默认编码。

  • 警告表明 Perl 能够注意到您的错误,并尝试通过使用 UTF-8 对输出进行编码来修复它。这是正确的修复,所以你的程序的输出不会改变,这给我们带来了第二个问题。

    您的第二个问题是您的终端字体没有 U+F242 的字形。如果您希望显示该字符,则需要使用不同的字体。

    关于perl - i3blocks 电池脚本,使用很棒的字体不适用于某些 unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32181689/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com