Кодирование содержимого в UTF-8 включает URL, который превращается в файл: \ - PullRequest
1 голос
/ 22 декабря 2011

Я использую этот код для получения одного из моих календарей от icloud.Это URL, который превращается в файл для загрузки (должен быть * .ics, но я могу оставить без него).проблема в том, что файл ANSI.Я хочу, чтобы он был загружен как UTF-8.

<?php
$file = "http://p04-calendarws.icloud.com/ca/subscribe/1/xxxzzzccc".$_GET['file']."";
header( "Content-Disposition: attachment; filename=".basename($file));
@readfile($file);
?>

Спасибо

РЕДАКТИРОВАТЬ:

, поэтому я попробовал другой путь:

<?php
$url = 'http://p04-calendarws.icloud.com/ca/subscribe/1/xxxzzzccc';
$img = 'z.ics';
file_put_contents($img, file_get_contents($url));
$utfconvert = file_get_contents("z.ics");
$saveit = fopen("zz.ics","w");
fwrite($saveit,utf8_encode($utfconvert));
fclose($saveit);
?>

, но новый файл сохраняется без имени, и в календаре Google по-прежнему не отображаются правильные символы.Я потратил 3 часа на это и считаю.

1 Ответ

0 голосов
/ 22 декабря 2011

Во-первых, убедитесь, что вывод iCal на самом деле кодируется сервером UTF-8 при его выводе.Затем вы можете добавить дополнительные заголовки:

header('Content-type: text/calendar; charset=utf-8');
...