问题现象:
在.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