Ruby on rails - 在localhost中的mySql上不显示阿拉伯字符

时间:2014-11-20 03:08:55

标签: mysql ruby-on-rails ruby character-encoding

我正在写一个ruby on rails的网站。我的项目在MC2和localhost上运行(相同的源,相同的数据库连接) 问题是,当我的源在localhost中插入数据时,一切正常的阿拉伯字符都正确地插入数据库并在web上显示。 但是当我在Amz MC2服务器中使用我的源插入数据时,阿拉伯字符被更改为一些奇怪的单词。 (比如'ضضض'......)

这是变量,我是如何插入的:

 levelreason = params[:gamestate_level_reason].force_encoding("UTF-8")
  pointsreason = params[:gamestate_points_reason].force_encoding("UTF-8")
  goldreason = params[:gamestate_gold_reason].force_encoding("UTF-8")
  waterreason = params[:gamestate_water_reason].force_encoding("UTF-8")
  oilreason = params[:gamestate_oil_reason].force_encoding("UTF-8")
  pearlsreason = params[:gamestate_pearls_reason].force_encoding("UTF-8")
  diwanlevelreason = params[:gamestate_diwanlevel_reason].force_encoding("UTF-8")
  daggerreason = params[:gamestate_dagger_reason].force_encoding("UTF-8")




 str_querygs = "insert into update_GameState set userId = '#{params[:userId]}', action = 'update gamestate', userChange = '#{session[:user]['username']}'"
      if (params[:gamestate_level] != "" && params[:gamestate_level_reason] != "")
        str_querygs += ", FromLevel = #{fromlevel}, ToLevel = #{tolevel}, LevelChangeReason = '#{levelreason}'"
      end
      if (params[:gamestate_trophies] != "" && params[:gamestate_dagger_reason] != "")
        str_querygs += ", FromDagger = #{fromdagger}, ToDagger = #{todagger}, DaggerChangeReason = '#{daggerreason}'"
      end
      if (params[:gamestate_email] != "" && !fromemail.eql?(toemail))
        str_querygs += ", FromEmail = '#{fromemail}', ToEmail = '#{toemail}'"
      end
      if (params[:gamestate_exper] != "" && params[:gamestate_points_reason] != "")
        str_querygs += ", FromExPoint = #{fromexpoint}, ToExPoint = #{toexpoint}, ExPointChangeReason = '#{pointsreason}'"
      end
      if (params[:gamestate_gold] != "" && params[:gamestate_gold_reason] != "")
        str_querygs += ", FromGold = #{fromgold}, ToGold = #{togold}, GoldChangeReason = '#{goldreason}'"
      end
      if (params[:gamestate_water] != "" && params[:gamestate_water_reason] != "")
        str_querygs += ", FromWater = #{fromwater}, ToWater = #{towater}, WaterChangeReason = '#{waterreason}'"
      end
      if (params[:gamestate_darkwater] != "" && params[:gamestate_oil_reason] != "")
        str_querygs += ", FromOil = #{fromoil}, ToOil = #{tooil}, OilChangeReason = '#{oilreason}'"
      end
      if (params[:gamestate_gems] != "" && params[:gamestate_pearls_reason] != "")
        str_querygs += ", FromPearls = #{frompearls}, ToPearls = #{topearls}, PearlsChangeReason = '#{pearlsreason}'"
      end
      if (params[:gamestate_townhall] != "" && params[:gamestate_diwanlevel_reason] != "")
        str_querygs += ", FromDiwanLevel = #{fromdiwanlevel}, ToDiwanLevel = #{todiwanlevel}, DiwanLevelChangeReason = '#{diwanlevelreason}'"
      end
      if (params[:gamestate_isFake] != "")
        str_querygs += ", isFake= '#{params[:gamestate_isFake]}'"
      end
      if (params[:gamestate_facebookId] != "")
        str_querygs += ", FromFacebookId = '#{fromfacebookid}', ToFacebookId = '#{tofacebookid}'"
      end
      if (params[:gamestate_username] != "" && !fromname.eql?(toname))
        str_querygs += ", FromName = '#{fromname}', ToName = '#{toname}'"
      end
      if (params[:gamestate_locale] != "" && !fromlocal.eql?(tolocal))
        str_querygs += ", FromLocal = '#{fromlocal}', ToLocal = '#{tolocal}'"
      end
      @db.query(str_querygs)
谢谢你!

0 个答案:

没有答案