Я должен использовать символы с диакритикой в URL?

журнал резервного копирования logname с truncate_only, сопровождаемым dbcc shrinkfile команда

58
задан 2 revs, 2 users 100% 10 January 2010 в 15:26
поделиться

4 ответа

Столкнувшись с подобной проблемой, я воспользовался возможностью перезаписи URL , чтобы такие страницы были доступны как с диакритическими знаками, так и без них. Фактический URL-адрес будет примерно таким, как

http://www.mysite.com/myresume.html

. А функция перезаписи + преобразования символов позволяет этой ссылке

http://www.mysite.com/myresumé.html

загружать тот же ресурс. Итак, чтобы ответить на ваш вопрос, в качестве идентификатора основного ресурса я ограничиваюсь 0-9, AZ, az и случайным дефисом.

14
ответ дан 24 November 2019 в 19:08
поделиться

Рассмотрение URL-адресов с диакритическими знаками часто приводит к тому, что они выглядят следующим образом:

http://fr.wikipedia.org/wiki/%C3%89l%C3%A9phant

... что не очень хорошо ... Я думаю, что мы еще какое-то время будем использовать URL-адреса с деакцентированием.

Тем не менее, ситуация должна улучшиться, поскольку, похоже, URL-адреса с акцентом теперь принимаются веб-браузерами.

В firefox 3.5, который я сейчас использую, URL-адрес отображается правильно, а не с% stuff, кстати; это кажется «новым», начиная с firefox 3.0 (см. Firefox 3: поддержка UTF-8 в адресной строке ); так что, вероятно, не поддерживается в IE 6, по крайней мере - и все еще довольно много людей используют этот: - (


Возможно, URL без акцента не лучший из возможных; но,

10
ответ дан 24 November 2019 в 19:08
поделиться

Следует избегать символов, отличных от ASCII, в URL-адресах, которые пользователи могут вводить в браузере вручную. Это нормально для встроенных ссылок, предварительно закодированных сервером.

Мы обнаружили, что браузер может кодировать URL по-разному, и очень сложно понять, какую кодировку он использует. См. Мой вопрос по этой проблеме:

Обработка кодировки символов в URI на Tomcat

5
ответ дан 24 November 2019 в 19:08
поделиться

В полном URL-адресе есть несколько областей, и каждая из них может иметь разные правила. Протокол - простой ASCII. Запись DNS регулируется правилами IDN (международных доменных имен) и может содержать (большинство) символов Unicode. Путь (после первого /), имя пользователя и пароль снова могут быть всем. Они экранируются (как% XX), но это просто байты. Какова кодировка этих байтов, узнать сложно (интерпретируется http-сервером). Часть параметров (после первой?) Передается «как есть» (после% XX без экранирования) в какое-то серверное приложение (php, asp, jsp, cgi), и как это интерпретирует байты - это другая история). Рекомендуется, чтобы путь / пользователь / пароль / аргументы были в формате utf-8, но не обязательно, и не все это уважают.

Так что вам определенно следует разрешить использование не-ASCII (мы уже не в 80-х), но что именно с этим делать, может быть непросто. Попробуйте использовать Unicode и держитесь подальше от устаревших кодовых страниц, пометьте свой контент правильной кодировкой / кодировкой, если можете (используя мета в html, языковые директивы для asp / jsp и т. Д.)

2
ответ дан 24 November 2019 в 19:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: