I ran into this problem when I tried to redirect all contents from one site to another. My http server is apache, and Im using mod_rewrite to do the job. So I added these codes to httpd.conf:
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^/(.*) http://www.example2.com/$1 [R=301,L]
Everthing seems to be good after Ive done that, however when I visit a urlencoded url such as http://www.example.com/?word=%E5%A4%A9 , apache redirects me to http://www.example2.com/?word=%e5%a4%a9 , as you see, all the urlencoded chars are trasnfered to lowercase which makes me impossible to infrom search engine about my domain change because search engine asks for a exact match of new and old URI(case sensitive).
BTW, when I use urlencode() function in PHP, the results it returned is automatically uppercased, so the standard URL should be something like this %E5%A4%A9.
I googled a lot and got nothing so I had to come here to ask for help, any help will be appreciated, thanks in advance.