问题现象:

  在.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

 

 

 

 


 

相关文章:

  • 2021-11-21
  • 2021-09-08
  • 2022-12-23
  • 2021-08-10
  • 2022-12-23
  • 2021-08-15
  • 2021-04-23
  • 2021-10-09
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-24
  • 2021-07-13
  • 2021-04-06
  • 2022-12-23
相关资源
相似解决方案