Как скачать файл с кириллицей в URL?
Привет) Лови решение)$url = urlencode('http://blobproxy-cdn.skoda-auto.com/wwk2-sitecollectionimages/news/march/в_млада-болеславе_произведено_11_000_000_автомобилей_škoda_201403302311.jpg');
$url = str_replace(array('%3A','%2F'), array(':','/'), $url);
$data = file_get_contents($url);
В моём случае целевая ссылка имела видhttp://some.domain.org//Uploads/images/408/А,Б%20секция%203%20этаж%204%20квcrop.jpg
т.е. смесь бульдога с носорогом - и слэши лишние, и нелатиница, и пробел в форме %20 .
Помогло следующее решение, по мотивам Andr'U Sender :if (preg_match('#^([\w\d]+://)([^/]+)(.*)$#iu', $filenameSrc, $m)){
    $filenameSrc = $m[1] . idn_to_ascii($m[2], IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46) . $m[3];
}
$filenameSrc = urldecode($filenameSrc);
$filenameSrc = rawurlencode($filenameSrc); 
$filenameSrc = str_replace(array('%3A','%2F'), array(':', '/'), $filenameSrc);
Замечу, что если пытаться использовать urlencode, а не rawurlencode, то тот кодирует пробелы в "+" плюсы и ссылка открываться не желала в таком виде. А с %20 как делает rawurlencode - прокатило.
Надеюсь кому-то спасёт немного волос :)PS:
Добавил ещё кусок кода - первые три строки ввиде блока if {...} (по наводке со стека) для поддержки кириллических (и др. национальных) доменов - теперь и http://сайт.рус/app/img/hero-bg.gif не страшен :)