perl hdb 调试器:浏览器以错误的编码显示 UTF-8 源代码

perl hdb debugger: browser displays UTF-8 source code in wrong encoding

提问人:lemzwerg 提问时间:8/23/2023 更新时间:8/23/2023 访问量:35

问:

我的 Perl 源代码包含这样的 UTF-8 内容

# Einige Konstanten für reguläre Ausdrücke, um die Lesbarkeit zu
# erhöhen.
my $Marker = qr/[.·<>=-]/x;
my $Buchstabe = qr/(?: [^.·<>=-] | ch)/x;
my $Vokal = qr/[aeiouäëïöüy]/x;
# Konsonant: nicht Vokal, aber Buchstabe.
my $Konsonant = qr/(?! $Vokal ) $Buchstabe/x;

但是,hdb 调试器浏览器窗口将代码显示为 latin1 编码:

hdb output

查看 HTML 源代码,我发现它是用 UTF-8 正确编码的;这意味着从 Perl 的调试界面到 HTML 页面的某个地方使用了错误的编码。

请注意,它工作得很好,并且在我的 GNU/Linux KDE 终端中正确显示源代码。perl -d

我该如何解决这个问题?有配置文件吗?这是一个错误吗?我使用的是 0.25 版。Devel::hdb

HTML Perl 调试 UTF-8

评论


答:

1赞 Håkon Hægland 8/23/2023 #1

似乎在第 27 行缺少:decode_utf8()

@rv = map { [ $_, $_ + 0 ] } @$file;

如果我将此行更改为

@rv = map { [ decode_utf8($_), $_ + 0 ] } @$file;

并在此之前从 Encode 导入,我得到以下输出:decode_utf8

enter image description here

评论

0赞 lemzwerg 8/24/2023
太好了,谢谢!