Это проблема кодирования, кодировкой по умолчанию в Firefox является UTF-8, в то время как в IE это какой-то ISO-XXXX-X, попробуйте установить
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
в вашем HTML - <head>...</head>
это установит кодировку в UTF-8, поэтому IE будет кодировать строку, как это сделал Firefox, и, следовательно, выдает рабочий запрос.
и, кстати, вы должны предоставить HTML-страницу, если вы хотите, чтобы это была ссылка, поэтому вам следует
echo '<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body>';
, прежде чем повторить <a href=...>
и
echo '</body></html>';
после этого.
Таким образом, IE будет использовать данную кодировку UTF-8 при отображении ссылки.
Может показаться, что он будет работать без этого, но тогда IE декодирует заданный <a href=...>
, догадывается, что это ссылка, а затем создает вокруг него собственный html-head-body, чтобы отобразить его - который затем включает <meta http-equiv="content-type" content="text/html; charset=ISO-XXXX-X">
вместо.
Если вы просто передаете ссылку через "AJAX" на уже загруженную страницу, убедитесь, что эта страница содержит упомянутый метатег.