Перезапись URL - международные письма - PullRequest
0 голосов
/ 16 октября 2008

Как мне отформатировать URL со специальными / международными символами?

В настоящее время я стараюсь, чтобы URL выглядели хорошо, чтобы:

www.myhost.com/this is a test, do you know how?

преобразуется в:

www.myhost.com/this_is_a_test_do_you_know_how

Я знаю, что некоторые международные буквы могут быть преобразованы (ü = ue, æ = ae, å = aa), некоторые символы могут быть удалены. Обычно я пытаюсь сделать так, чтобы URL выглядел «хорошо», но разве это глупо?

Но что мне делать с китайскими, японскими и арабскими буквами, которые не имеют ничего общего с нашим западным форматом ASCII?

Мне действительно не нравится идея перезаписи URL шестнадцатеричными кодами, поэтому сейчас я просто использую свой внутренний уникальный идентификатор, если URL содержит слишком много «не конвертируемых» символов.

Ответы [ 4 ]

1 голос
/ 16 октября 2008

Какой язык вы используете? PHP включает функцию filter_var (), которая, кажется, выполняет большую часть того, что вы хотите. Смотри http://us.php.net/manual/en/function.filter-var.php.

В общем, стоимость создания читаемых человеком строк ASCII из произвольного ввода строк, вероятно, слишком велика, чтобы того стоить. Если пользователь даст вам китайский ханци, что вы собираетесь делать? Посмотрите в словаре и выведите результат в пиньинь?

Лучшее, наиболее общее решение - просто взять ввод, отформатировать его как UTF-8, а затем кодировать URL-адрес результата. Это сделает нелатинский текст нечитаемым, но в любом случае для этих языков нет хорошего общего решения. Язык, который вы используете, почти наверняка имеет библиотечные функции, которые могут упростить это.

0 голосов
/ 16 октября 2008

, если вы используете .NET с не

Server.URLEncode( myURL );

но если вы хотите использовать скандинавские символы или любой другой символ, который вам нужен, вам просто нужно настроить правило в своем компоненте перезаписи URL, потому что DynamicWeb CMS использует все доступные символы, заменяют только пробелы по подчеркиванию ('_')

как этот URL:

http://www.gynækologen.dk/Undersøgelser_og_behandlinger.aspx

вы можете видеть æ в домене, а также ø в названии страницы

0 голосов
/ 16 октября 2008

Взгляните, скажем, http://ja.wikipedia.org/. Если навести курсор мыши на ссылки, они отображаются в строке состояния в виде японских символов. Когда вы переходите по ссылке, в строке адреса не выглядит так по-японски, но с этим ничего не поделаешь. Не проверял, но я предполагаю, что все это в шестнадцатеричном формате utf8.

0 голосов
/ 16 октября 2008

Но не использует ли Google URL-адрес? Если часть текста из данной статьи есть в URL, то поисковая система Google будет использовать это? Но если действительно нет классного способа обработки писем, не относящихся к ascii, то эти языки имеют более низкий приоритет в "google-internet?"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...