加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 21:44:43 所属栏目:大数据 来源:网络整理
导读:我正在尝试下载网页;然后用正则表达式进行分析;然后获取正则表达式发现的文件.我有两个问题: (1)我使用wget下载网页和文件,使用此行 my $webPage = "onePage";my $result = run wget -O $webPage $aSite,:out,:err; 其中$webPage是wget的输出文件.问题:任
我正在尝试下载网页;然后用正则表达式进行分析;然后获取正则表达式发现的文件.我有两个问题:

(1)我使用wget下载网页和文件,使用此行

my $webPage = "onePage";
my $result = run <<wget -O $webPage $aSite>>,:out,:err;

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

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

cat onePage

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

cat onePage | perl6 -ne '.say;'

并且perl6的错误输出是

Malformed UTF-8
  in block <unit> at -e line 1

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

h?lt

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

$tmpLine ~~ s/<-[print]>//; # this causes my program to miss many files

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

解决方法

Any perl6 equivalent to wget?

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

How do I best handle these malformed UTF-8 chars or any malformed unicodes or even malformed control chars ?

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读