首页 > 解决方案 > Rails 标题化导致“不兼容的编码正则表达式匹配”

问题描述

我的 rails 应用程序给出了 ActionView::Template::Error 的消息:

不兼容的编码正则表达式匹配(ISO-8859-1 正则表达式与 UTF-8 字符串)

以下代码在titleize调用中文字符串返回时触发此错误。(xxd给出e8bf 94e5 9b9e这两个字符。)

<%= link_to t(:back).titleize, records_path %>

这不会我的工作站中引发错误,只会在我的服务器上引发错误。

我该如何解决这个问题?原因是什么?

标签: ruby-on-railsruby-on-rails-6

解决方案


我有这个问题,为了解决这个问题,我重写titleize方法如下:

app/classes/string.rb

class String

  def titleize
    separator = ' '
    self.strip.split(separator).map do |part|
      part.first.capitalize + part[1..part.size]
    end.join(separator)
  end

end

推荐阅读