Параметризация Rails с использованием Transliterate Не работает со строками арабского языка / Unicode - PullRequest
7 голосов
/ 19 октября 2011

У меня есть строка, содержащая арабские символы "محمود"

Когда я пытаюсь параметризовать эту строку, она возвращает пустую строку ""

x = "محمود"
x.parameterize    => ""

Я проверил код параметризации и обнаружил, что он вызывает I18n.transliterate, который возвращает вопросительные знаки «?????»

Я пытался настроить транслитерацию, ссылаясь на предыдущий вопрос Как настроить транслитерацию в приложении Rails 3?

Но все еще возвращает пустую строку.

Любая помощь?

1 Ответ

3 голосов
/ 19 октября 2011

Предполагается, что метод parameterize делает строковый URL-адрес безопасным, и существует строгое ограничение на то, какие символы могут появляться в URL-адресе. Обычно все, что не строго a-z или 0-9 или -, удаляется.

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

...