我正在开发一个使用ruby 1.9.3和mongoid作为我的 ORM的rails 3.1应用程序。我面临一个烦人的问题。我想像这样截断帖子的内容:
<%= raw truncate(strip_tags(post.content), :length => 200) %>
我正在使用raw
并且strip_tags
因为我post.content
实际上是用富文本编辑器处理的。
我对非 ASCII 字符有一个严重的问题。想象一下我的帖子内容如下:
éééé éééé éééé éééé éééé éééé éééé éééé
我在上面以一种天真的方式做的是:
éééé éééé éééé éééé éééé &eac...
看起来 truncate 正在查看字符串的每个单词,例如é&eactute;éé
.
有没有办法:
- 截断处理实际的 UTF-8 字符串,其中 'é' 代表单个字符?那将是我最喜欢的方法。
- 破解上面的指令,这样结果会更好,比如强制轨道在 2 个单词之间截断,
我问这个问题是因为到目前为止我还没有找到任何解决方案。这是我的应用程序中唯一遇到这种字符问题的地方,这是一个主要问题,因为网站的全部内容都是法语,所以包含很多é, ç, à, ù
.
另外,我认为这种行为对于助手来说是非常不幸的,truncate
因为在我的情况下,它根本不会截断 200 个字符,而是截断大约 25 个字符!