Вопрос

Я реализую блог с тегами с некоторыми французскими символами. Мой вопрос связан с тем, как обращаться с пробелами и символами Unicode (utf-8) в URL.

скажем, у меня есть тег с именем: ohl & # 224; l & # 224 ;! и у меня есть следующий код в моем облаке тегов:

<%= link_to h(tag.name.capitalize), { :controller => :blog, :action => :tag, :id => h(tag.name) }, :class => css_class %>

Как мне решить эту проблему?

Это было полезно?

Решение

См. ToASCII и ToUnicode в эта статья в Википедии . Надеюсь, в статье достаточно указателей, чтобы решить ваш вопрос.

Изменить: Хотя он говорит Python , Unicode и постоянные ссылки могут дать представление о том, как кодировать решение вашего вопроса. Подводя итог:

  

По сути, URL-адрес Unicode кодируется в UTF8, а каждый байт строки в кодировке UTF8 кодируется с использованием процентного кодирования. Браузер, по-видимому, распознал эту конкретную схему кодирования (которая нигде не документирована, и я могу отображать хорошие интернационализированные URL-адреса для пользователя.

Извините, я не знаю, есть ли у Rails готовая функция для кодирования URL-адресов таким образом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top