私は、ORMとしてruby1.9.3とmongoidを使用するrails3.1アプリに取り組んでいます。私は厄介な問題に直面しています。投稿の内容を次のように切り捨てたいと思います。
<%= raw truncate(strip_tags(post.content), :length => 200) %>
私が使用raw
しているのは、実際にはリッチテキストエディタで処理されているstrip_tags
ためです。post.content
非ASCII文字に深刻な問題があります。私の投稿内容が次のようになっていると想像してください。
éééé éééé éééé éééé éééé éééé éééé éééé
私が上で素朴な方法でやっていることはこれをします:
éééé éééé éééé éééé éééé &eac...
切り捨ては、のような文字列のすべての単語を表示しているように見えますé&eactute;éé
。
次のいずれかの方法はありますか?
- 切り捨てで実際のUTF-8文字列を処理しますか?ここで、「é」は単一の文字を表しますか?それが私のお気に入りのアプローチです。
- 上記の命令をハックして、結果がより良くなるようにします。たとえば、レールを2ワード間で切り捨てます。
私は今のところ解決策を見つけていないので、この質問をしています。これは私のアプリでそのようなキャラクターに問題がある唯一の場所です。ウェブサイトのコンテンツ全体がフランス語であるため、これは大きな問題であり、多くのが含まれていますé, ç, à, ù
。
また、この動作はヘルパーにとって非常に残念なことだと思います。truncate
私の場合、200文字ではなく、約25文字が切り捨てられるからです。