Проблемы с Юникодом с acts_as_taggable_on_steroids
-
10-07-2019 - |
Вопрос
Я реализую блог с тегами с некоторыми французскими символами. Мой вопрос связан с тем, как обращаться с пробелами и символами 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-адресов таким образом.