启用MYSQL后原有程序乱码

发现换了ruby1.9.2和MYSQL以后,原来好好的程序都出现乱码了,折腾了好久原来是ruby 1.9字符串不兼容编码的问题。
用了lllyq的方法后成功解决问题,在application控制器加一个过滤器,强制转换成UTF8
before_filter :force_utf8
def force_utf8
    if RUBY_VERSION > '1.9' 
    Encoding.default_external = Encoding::UTF_8  
    Fixnum.class_eval do 
      alias_method : old_to_s, :to_s 
      def to_s  
        old_to_s.force_encoding("UTF-8")  
      end 
    end 
    Array.class_eval do 
      alias_method : old_pack, :pack 
      def pack(*args)  
        old_pack(*args).force_encoding("UTF-8")  
      end 
    end 
    end
  end 

--这样做有个问题,就是执行很慢,目前还没找到更好的方法,不得以切回使用sqlite3数据库

你可能感兴趣的:(mysql,Ruby)