.erb 中不能显示从mysql检索出的中文 incompatible character encodings: UTF-8 and ASCII-8BIT

来源:转载

问题现象:

在.html.erb中显示mysql中的中文字符时会出现 

incompatible character encodings: UTF-8 and ASCII-8BIT 错误

问题可能原因:

 

mysql_adapater出来的数据是ASCII-8BIT

解决方法:

 

修改根目录下的/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/connection_adapters中的mysql_adapter.rb文件 def select(sql, name = nil)

          @connection.query_with_result = true

          result = execute(sql, name)

          rows = []

          result.each_hash { |row| rows << row }

          result.free          @connection.more_results && @connection.next_result    # invoking stored procedures with CLIENT_MULTI_RESULTS requires this to tidy up else connection will be dropped

      # add begin
      if @config[:encoding] && @config[:encoding]=="utf8"
            rows.each do |row|
              row.each do |key, value|
                if (value.class == String)
                  value.force_encoding("UTF-8")
                end
              end
            end
          end
      # add end
          rows
        end
 

 

 

 


 


分享给朋友:
------分隔线----------------------------
您可能感兴趣的文章:
随机阅读: