2017-05-28 52 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的回答是:

在它總是拋出一個錯誤的時刻

直到現在[這不是一個好時機,啓用該選項]

而現在[是更好的時機]

相關問題