How do I handle special characters?
Query params should be passed to the function in a keyed array:

$query = array(
  'nid' =&gt; 123,
  'foo' =&gt; 'bar',
);
$params = array('query' =&gt; $query);

print l(t('Modifier'), 'node/' . $entity-&gt;nid . '/edit', $params);