我使用Transfer-Encoding: chunked
來編寫HTTP響應。Perl將二進制數據拆分爲塊拆分
的響應被通過以下分裂成碎片:
my $template = "a$buffer_size" x int(length($response)/$buffer_size) . 'a*';
foreach my $buffer (unpack $template, $response){
...
}
此工作正常時,內容類型是text/html
,但它是腐敗的二進制數據,如application/pdf
。
可以使用unpack
將二進制數據拆分爲相等的長度嗎?
當您說內容類型導致損壞時,您是否確認通過嘗試訪問相同的數據,使用不同的MIME類型發送? – Dancrumb
另外,腐敗的本質是什麼? – Dancrumb
@Dancrumb「腐敗」是該文件被錯誤地標記爲UTF-8而不是ANSI。奇怪的是,如果我用'grep {/ \ S /} split /(.{$ buffer_size})/'來模擬'unpack',一切都很好。而且,如果在命令行完成,'unpack'邏輯就可以(即,不通過mod_perl或ActiveState PerlEx)執行。 – xpsd300