2017-05-28 54 views

回答

0

如果我没有理解LWP::Simpleexample scriptimplementation正确的,我觉得你的意思来处理这样的两种情况下...

设置.force_encoding使用不太严格的编码:

use LWP::Simple; 
my $lwp = LWP::Simple.new; 

$lwp.force_encoding = 'utf8-c8'; 
say $lwp.get('http://www.google.com'); 
  • utf8(缺省值)= UTF8,具有引起异常无效字节。
  • utf8-c8 = UTF8带有无效字节的传递。

设置.force_no_encode得到的结果作为Buf

use LWP::Simple; 
my $lwp = LWP::Simple.new; 

$lwp.force_no_encode = True; 
say $lwp.get('http://www.google.com'); 

我不能,虽然测试它,因为LWP::Simple(与ZEF安装)不起作用在所有对我来说。 (不知道这个问题是否与我的Perl 6的设置有关。)

我的印象是,这个模块现在不是很精美。这不仅仅是缺少文档–这个API似乎也是从Perl 5模块中复制出来的(甚至是在Perl 6中没有意义的部分),并且部分由不同的提交者演变而来,这些提交者在这里和那里添加功能并没有太多设计重点。

+0

utf-c8编码在这里不起作用,因为它的工作原理是保存解码中的奇怪, d force_no_encode返回一个我仍然需要解码的缓冲区。我不认为这是LWP :: Simple的问题,因为Perl 6的解码能力有限。 –

+0

所以解码为拉丁-1或使用解压缩* A – ugexe

+0

这将工作,如果它是拉丁文-1或ASCII,但它不是。 –

0

#perl6 earlier today

没有解码器API提供一个选项,选择是否显示错误消息或当它发现无效字节插入?

jnthn的回答是:

在它总是抛出一个错误的时刻

直到现在[这不是一个好时机,启用该选项]

而现在[是更好的时机]

相关问题