Pues nose.. pero me parece que el hacer algo asi, en vez de asegurara tu aplicacion estas poniendola mas vulnerable... jajaja... por que, por que estas aceptando caracteres especiales, y esto puede convertirse en un agujero bastante serio, lo idea es que los id, sea validados siempre que sean a numericos o algo asi.. por lo que permitir este tipo de codificacion te podra hacer mas vulnerable la aplicacion, desde mi punto de vista...
Lo que puedes hacer es validar sobre quien puede hacer ese tipo de consultas, derrepente cambiar "id" por "codigo", "control"... asi un ataque sencillo hara pensar que el id lo llevas por otro nombre, y digamos que hara algo mas segura... pues otras cosas se pueden hacer mucho mas efectivas que eso de permitir esos tipos de caracteres en tus consultas