Fist off all, great work done!
There's a problem with special characters, when the to_download function gets called, it used to show special characters without their encoding. The solution to my problem was to utf8_decode the input string that was send to Response::make, now all characters are showing fine.