【问题标题】:# encoding: utf-8 don't working ruby on rails# encoding: utf-8 不能在 Rails 上工作
【发布时间】:2014-11-23 03:06:02
【问题描述】:

我在我的项目中使用 ruby​​ 1.9.1。 所以我需要从字符串中删除一些从单词中粘贴的 cmets。 如:

<!--[if gte mso 9]><xml>
     <o:OfficeDocumentSettings>
      <o:RelyOnVML/>
      <o:AllowPNG/>
     </o:OfficeDocumentSettings>
    </xml><![endif]--> 

所以我用text.gsub(/&lt;!--(.*?)--&gt;/s, "") 编写了一个函数在帮助器中删除它,并在顶部帮助器文件rb 上添加了# encoding: utf-8,还在application.rb 中定义了config.encoding = "utf-8",但它似乎对我不起作用。 我得到的错误

 ActionView::Template::Error(不兼容的编码正则表达式匹配(Windows-31J 正则表达式与 UTF-8 字符串))

在这种情况下你对我有什么支持吗?谢谢!

【问题讨论】:

  • 试试这个text.gsub(/&lt;!--(.*?)--&gt;/m, "")
  • @AvinashRaj 感谢您的支持。它现在工作了。

标签: ruby-on-rails regex utf-8


【解决方案1】:

ruby 中没有 DOTALL 修饰符 s。只需将 s 修饰符更改为 m 即可。

text.gsub(/<!--(.*?)-->/m, "")

DEMO

而且你不需要捕获任何字符,只需/&lt;!--.*?--&gt;/m 就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-18
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多