• .erb 中不能显示从mysql检索出的中文 incompatible character encodings: UTF8 and ASCII8BIT


    问题现象:

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

      
  • 相关阅读:
    (转载) Hadoop科普文——常见的45个问题解答
    JSP---设置CooKIe
    JSP---使用HTML完成定时跳转功能
    JSP接受全部请求参数名称及其对应内容
    JSP用户登录程序实现
    jsp连接数据库MySql
    MapReduce程序--成绩统计
    Java中的StringTokenizer类的使用方法
    eclipse hadoop开发环境配置
    解决SDK Manager无法更新问题
  • 原文地址:https://www.cnblogs.com/kting/p/2177530.html
Copyright © 2020-2023  润新知