我正在使用rails 3.1應用程序ruby 1.9.3和mongoid作爲我的ORM。我正面臨一個煩人的問題。我想截斷後的內容是這樣的:Rails截斷包含&eacute的UTF-8字符串; (例如)
<%= raw truncate(strip_tags(post.content), :length => 200) %>
我使用raw
和strip_tags
,因爲我post.content
實際上是與富文本編輯器來處理。
我有一個非ASCII字符的嚴重問題。想象一下,我的帖子內容如下:
éééé éééé éééé éééé éééé éééé éééé éééé
什麼我上面做一個簡單的方式做到這一點:
éééé éééé éééé éééé éééé &eac...
貌似截斷是看到像é&eactute;éé
字符串的每一個字。
有沒有辦法要麼:
- 有截斷處理實際UTF-8字符串,其中「E」代表一個字符?那將是我最喜歡的方法。
- 哈克上述指令這樣的結果是更好的,像力導軌2個字之間截斷,
我問這個問題,因爲我還沒有發現任何解決至今。這是我應用程序中唯一存在這種字符問題的地方,因爲網站的全部內容都是法文的,所以它是一個主要問題,因此包含大量的é, ç, à, ù
。
此外,我認爲這種行爲是相當不幸的truncate
幫手,因爲在我的情況下,它根本不截斷200個字符,但約25個字符!
是否'post.content'使用UTF-8é或HTML'&eacute;'實體? – 2012-02-09 08:43:10
好問題。我如何檢查?我敢打賭&eacute。我知道這可能是一個更大問題的症狀,我只想把我的問題集中在一些特定和簡單的問題上。所以也許有辦法通過確保mongo存儲UTF-8字符串來處理整個事情,但我不知道如何檢查.. – rpechayr 2012-02-09 08:47:00
@ muistooshort我更新了我的問題以更好地反映情況。我在條紋html字符串的上下文中。它有幫助嗎? – rpechayr 2012-02-09 08:51:36