Как указано в http://laravel.com/docs/responses#special-responses:
Примечание: Symfony HttpFoundation, которая управляет загрузкой файлов, требует загружаемого файла, чтобы иметь имя файла ASCII.
Если я понимаю правильно, в идеале имя файла должно быть сохранено с ASCII файла в процессе загрузки, а затем вернулся с:
return Response::download(<ascii_filename>);
Это нормально, если это приемлемо, что имя файла не так же, как при загрузке.
Однако, если имя файл не должен измениться, то загрузка файла должна запускается с:
return Response::download(<ascii_filename>, <original_file_name>);
Это означает, что необходимо следить за оригинальный файл после сохранения файла в процессе загрузки , Это может быть достигнуто путем упрощения имени файла и сохранения исходного имени файла в базе данных или путем хранения имени файла с именем, закодированным таким образом, чтобы его можно было преобразовать обратно в исходное имя.
Отслеживание исходного имени файла в базе данных позволяет упростить имена файлов, чтобы они были очень узнаваемыми (например, «hallå där.txt» -> «halla dar.txt»).
Однако использование базы данных не всегда является опцией.Существуют различные способы преобразования строк UTF-8 или ISO-8859-1 в ASCII таким образом, что они могут быть преобразованы обратно (например, base64_encode/base64_decode, и др.), Каждый из которых имеет плюсы и минусы (например, в зависимости от того, вы хотите сохранить файл с узнаваемым именем).
Я бы пошел с переименованием файлов ... Наличие таких вещей может быть головной болью на разных уровнях. –
Тот же вопрос на форумах Laravel, ни одного реального решения, кроме переименования файлов. http://forums.laravel.io/viewtopic.php?pid=61493 –