Internet Explorer не отображает китайские символы из URL-адреса

Я работаю над требованием отображать (делать читаемые) символы из URL.

  • Когда я использую Google Chrome, он отображает параметры на китайском языке - даже если они закодированы в UTF-8.

  • Когда я использую Mozilla Firefox, он отображает параметры на китайском языке, даже если они закодированы в UTF-8.

  • Когда я использую Internet Explorer, он отображает параметры, закодированные в UTF-8.

N.B. URL-адрес кодируется в UTF-8; Я знаю, потому что, когда я копирую URL-адрес из трех из них и вставляю его в Notepad ++, три из них отображают следующее:

/% E6% 89% 93% E5% до н.э.% 80% Е7% 9B% АЕ% E5% BD% 95/% E7% 9B% B8% E6% 9C% BA/% E6% 95% B0% Е7 % A0% 81% Е7% 9B% B8% E6% 9C% BA/% E5% B0% 8F% E5% 9E% 8B% E6% 95% B0% E7% A0% 81% Е7% 9B% B8% E6% 9C% BA/PowerShot-A480/р/1934793

Возможно, это улучшилось у пользователей Mozilla Firefox и Google Chrome, которые могут сделать кодированную String доступной для чтения, и, возможно, ребята из IE не поддерживают это? Или, есть ли способ активировать это с IE?

Кстати... Переход к просмотру → Кодировка → Юникод (UTF-8) заботится о тексте внутри страницы, но не имеет никакого значения для текста в URL-адресе.

Любая помощь будет принята с благодарностью!

Ответ 1

Я написал сообщение в блоге о Internet Explorer, не отображающем декодированную версию символов, отличных от ASCII, и используя IRI для решения проблемы.

На сегодняшний день мы имеем следующую ситуацию:

  • HTML5 поддерживает IRI, то есть URI с поддержкой символов Unicode.
  • HTTP не поддерживает IRI, но все основные браузеры заботятся о преобразовании IRI в действительный (закодированный ) URI для извлечения указанного ресурса (страницы).
  • IE поддерживает IRI в атрибуте href тегов привязки и правильно отображает их в своей адресной строке так же, как при вводе URL вручную (клавиатура; )).
  • Если вы выберете процентное кодирование вашего IRI, сделав его URI, IE не будет декодировать что URI обратно в IRI.

Итак, вы можете попробовать следующее:

  • Сохраните ваши HTML файлы с помощью UTF-8. Это позволяет вставить в него любой символ Юникода.
  • Сделайте не процентное кодирование URL-адресов внутри ссылок ваших HTML-страниц. Просто используйте такие ссылки: <a href="#" onclick="location.href='http://zh.wikipedia.org/wiki/亦思巴奚兵乱'; return false;">亦思巴奚兵乱</a>

Отличную статью по этой теме можно найти в W3C: Введение в многоязычные веб-адреса.