Laravel中的URL参数格式

I hve a Laravel 5.2 application. I have a route where I receive a parameter called ID by GET method. The format of the ID is giving me some problems, an ID is formed like:

Somecharacter%40otherThing.somethingelse

Sending the ID as above gives me File not found in the browser, but, if I delete the % or the . everything works fine, its like they cannot coexist in the URL. The route in Routes.php file is:

Route::get('generateFile/{action}/{id?}',array('as'=>'generateFile','uses'=>'MyController@generate'))->where('id', '(.*)'); 

So, I'm starting to believe that I have to modify the where clause in the route, but I don't know what exactly should I put to makeit accept a parameter as I said before. Thanks in advanced!

Just pass id with encryption urlencode

urlencode(\Crypt::encrypt(id));

get the id back using

urldecode(\Crypt::decrypt(id));