下载前转换编码

时间:2015-10-04 09:25:33

标签: php encoding utf-8

我正在搜索一种方法,在下载之前将一个torrent编码(从UTF-8-BOM转换为WINDOWS-1252),因为如果我只是用readfile()下载它,那么torrent就不是有效的bencoding,所以我需要转换它到WINDOWS-1252或CP1252。

单击我的页面上的下载,然后下载以WINDOWS-1252编码的torrent文件。

这是我的剧本:

header("Content-Disposition: attachment; filename=\"$tname.torrent\"");
header("Content-Type: application/octet-stream");
header("Content-Length: " . filesize($fn));
$content = iconv("UTF-8", "WINDOWS-1252", readfile($fn));
print($content);

Acually,这个脚本无法正常工作,因为当我下载文件时,它是空的。 怎么办?

1 个答案:

答案 0 :(得分:0)

readfile直接打印所请求的文件,但您正在使用它,就像它会返回文件的内容一样。
为此,您必须使用file_get_contents

您可能也会得到错误的文件大小,因为以UTF-8编码的文件可能与Windows-1252中编码的文件大小不同。
因此,请使用filesize($fn)

,而不是strlen($content)