Перезапись URL - международные буквы

Как мне форматировать 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-адрес содержит слишком много «непреобразуемых» символов.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
1 314
4

Ответы 4

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

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

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

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

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

Да, это возможно, но на мой взгляд очень идея ПЛОХОЙ. Я иногда сталкивался с этим, и знаете что? У меня были проблемы, потому что у меня не было «правильной» клавиатуры на компьютере, который я использовал в то время!

Davide 16.10.2008 21:54

Не уверен, что понимаю. Какие у вас были проблемы, и какой эффект дала клавиатура? Я понимаю, что текст html полностью написан символами ASCII, и браузер интерпретирует и отображает закодированные символы, отличные от ascii, если это возможно, поэтому клавиатура не должна вводить его.

user8599 16.10.2008 22:15

да, ja. сайт просто работает с японскими буквами, не беспокоясь о буквах ascii.

Eggs McLaren 17.10.2008 00:24

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

Server.URLEncode( myURL );

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

как этот URL:

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

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

да, я думал об этом, но опять же, вы не можете просто вставить URL-адрес на какой-нибудь сайт, который его поддерживает. Нравится: validator.w3.org/… И привет тебе, балександре, я тоже датчанин :)

Eggs McLaren 17.10.2008 00:23

ааа похоже это просто имя хоста

Eggs McLaren 17.10.2008 00:30

Другие вопросы по теме