perl6格式错误的UTF-8导致程序崩溃

lis*_*tor 5 utf-8 perl6 malformed

我正在尝试下载网页; 然后用正则表达式进行分析; 然后获取正则表达式发现的文件.我有两个问题:

(1)我使用wget这一行下载网页和文件

my $webPage = "onePage";
my $result = run <<wget -O $webPage $aSite>>, :out, :err;
Run Code Online (Sandbox Code Playgroud)

来自哪里$webPage的输出文件wget.问题:任何perl6相当于wget?我URI::FetchFile在perl6网站上使用过模块; 它获取了一些文件,但它无法获取网页.

(2)wget下载的$ webPage有时会出现格式错误的UTF-8字符,导致程序崩溃.当我做

cat onePage
Run Code Online (Sandbox Code Playgroud)

从shell中,那些格式错误的UTF-8字符显示为blob,并且此命令导致与我的程序相同的错误:

cat onePage | perl6 -ne '.say;'
Run Code Online (Sandbox Code Playgroud)

并且perl6的错误输出是

Malformed UTF-8
  in block <unit> at -e line 1
Run Code Online (Sandbox Code Playgroud)

在终端或shell上,一个格式错误的UTF-8字符显示为这样的blob:

h?lt
Run Code Online (Sandbox Code Playgroud)

如果我尝试删除非打印字符,那么结果是我错过了大量文件链接:

$tmpLine ~~ s/<-[print]>//; # this causes my program to miss many files
Run Code Online (Sandbox Code Playgroud)

如何最好地处理这些格式错误的UTF-8字符或任何格式错误的unicodes甚至格式错误的控制字符?

jjm*_*elo 3

有 perl6 相当于 wget 吗?

有几个。HTTP::Agent现在被认为是最新的,但您也可以使用LWP::Simple.

如何最好地处理这些格式错误的 UTF-8 字符或任何格式错误的 unicode 甚至格式错误的控制字符?

您可能想尝试UTF8-C8编码。但如果直接从perl6程序获取页面,可能就不成问题了。

然而,崩溃是完全不同的事情。最好是创建一个Rakudo 问题