开发者

Rails 3 Encoding::CompatibilityError

I am working on a rails app that submits a french translation via ajax and for some reason I keep getting the following error in the log:

Encoding::CompatibilityError incompatible character encodings: UTF-8 and ASCII-8BIT

Does anyone know how to fix this?

FIX:This works on the WEB开发者_如何学Gorick sever

Place # encode: UTF-8 at the top of each file you want to work with different chars

I can't get this to work on a rails server with Thin... anyone else run into this?


https://rails.lighthouseapp.com/projects/8994/tickets/4336-ruby19-submitted-string-form-parameters-with-non-ascii-characters-cause-encoding-errors

the above link fixed my problem.

Specifically myString.force_encoding('UTF-8') on the string before sending it for translation.

Placed the sample code in the Application_controller.rb file and all is well


I know this is old, but I had the same problem and the solution was in the link @dennismonsewicz gave. In detail, the code was:

was:

before_filter :force_utf8_params

  def force_utf8_params
    traverse = lambda do |object, block|
      if object.kind_of?(Hash)
        object.each_value { |o| traverse.call(o, block) }
      elsif object.kind_of?(Array)
        object.each { |o| traverse.call(o, block) }
      else
        block.call(object)
      end
      object
    end
    force_encoding = lambda do |o|
      o.force_encoding(Encoding::UTF_8) if o.respond_to?(:force_encoding)
    end
    traverse.call(params, force_encoding)
  end


I fixed this issue by converting an utf8 file to ascii. See the answer here: ruby 1.9 + sinatra incompatible character encodings: ASCII-8BIT and UTF-8

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜