I have Russian blog built with BlogEngine.NET 1.5.
I use Russian words in links encoded with URLEncode, so links are human-readable in most browsers - FF, Chrome, Opera (except for IE, but this is not the real problem with this browser). This idea is not mine, I borrowed it from Wikipedia - it uses encoded URLs on localized sites.
The real problem is that when I am trying to add comment in IE8 it fails (and only on production machine, development environment works fine).
Using Fiddler I found out that IE tries to send AJAX callback using WebForm_DoCallback to wrong address - it seems that it decodes URL, gets wrong characters and asks page with that wrong address from server and (of course) receives 404.
Here is how incorrect request from IE looks in Fiddler:
POST /ru/post/�������������-�����.aspx HTTP/1.1
Here is how FF makes same request and gets correct response:
POST /ru/post/%D0%92%D1%81%D1%82%D1%83%D0%BF%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D1%81%D0%BB%D0%BE%D0%B2%D0%BE.aspx HTTP/1.1
I upgraded solution from default ASP.NET 2.0 for BE to ASP.NET 3.5 but this changed nothing.
Please note that I made some minor changes in BE to allow properly encoded UTF links - by default it wipes out percent symbol from links.
Can anybody tell me what wrong is with IE behavior here and how to fix it? Why development environment under ASP.NET Development works different from production machine under IIS6? Why IE does not decode link in address bar (like other browsers) but does it when making request?