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: Введение в многоязычные веб-адреса.