URI::Escape has already got a canonical list of characters which are 'unsafe' - you just don't hand it a second parameter...

I was assuming the (too small) unsafe list was deliberate - I'm happy to supply an alternate patch removing the list altogether and replacing with the default URI::Escape does, if that's preferred!