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

lqfhib0f  于 8个月前  发布在  Perl
关注(0)|答案(1)|浏览(58)

我的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调试器浏览器窗口显示的代码是latin 1编码的:

查看HTML源代码,我发现它是正确地用UTF-8编码的;这意味着从Perl的调试接口到HTML页面的某个地方使用了错误的编码。
请注意,perl -d工作正常,并在我的GNU/Linux KDE终端中正确显示源代码。
我该怎么解决这个问题?有配置文件吗?这是一个bug吗?我使用的是Devel::hdb版本0.25。

cu6pst1q

cu6pst1q1#

第27行似乎缺少了decode_utf8()

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

如果我把这一行改成

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

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

相关问题