I've the next rule:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

and my url is the following:

http://www.mydomain.com/189-9544737-0616922?%5Fencoding=UTF8&node=10

On myphp.php

var_dump($_GET): array(3) { 
  ["q"]=>  string(19) "185-8676848-3133633" 
  ["_encoding"]=>  string(4) "UTF8" 
  ["node"]=>  string(2) "10" }

Any ideas?

regards,

Try adding a B modifier:

Apache needs to unescape Web addresses before mapping them, so backreferences will be unescaped at that time they're applied. While using B flag, non-alphanumeric figures in backreferences is going to be steered clear of.

RewriteRule ^(.*)$ index.php?q=$1 [B,L,QSA]