Я работаю над приложением rails 3.1 с ruby 1.9.3 и mongoid в качестве ORM.Я сталкиваюсь с раздражающей проблемой.Я хотел бы обрезать содержание сообщения следующим образом:
<%= raw truncate(strip_tags(post.content), :length => 200) %>
Я использую raw
и strip_tags
, потому что мой post.content
фактически обрабатывается с помощью текстового редактора.
У меня серьезная проблема с не ASCII-символами.Представьте, что мой пост содержит следующее:
éééé éééé éééé éééé éééé éééé éééé éééé
То, что я делаю выше наивным способом, делает это:
éééé éééé éééé éééé éééé &eac...
Похоже, что truncate видит каждое слово строки как é&eactute;éé
.
Есть ли способ:
- Урезать обработать фактические строки UTF-8 , где 'é' обозначает один символ?Это был бы мой любимый подход.
- Взломайте приведенную выше инструкцию так, чтобы результат получился лучше, например, заставьте рельсы сокращаться между 2 словами
Я задаю этот вопрос, потому что пока не найдено ни одного решения.Это единственное место в моем приложении, где у меня есть проблемы с таким персонажем, и это серьезные проблемы, так как весь контент сайта на французском языке, поэтому содержит много é, ç, à, ù
.
Также,Я думаю, что такое поведение весьма прискорбно для помощника truncate
, потому что в моем случае он вообще не усекает 200 символов, а приблизительно 25 символов!