隨筆-167  評論-65  文章-0  trackbacks-0

          1,mysql數據庫采用utf8編碼格式(注意是utf8,非utf-8)
          包括數據庫,表,字段的所有編碼

          2, 在你的rails項目的database.yml中設置編碼格式
          development:
            adapter: mysql
            database: session_development
            username: root
            password: riskfitfeng
            host: localhost
            encoding: utf8(注意是utf8,非utf-8)

          3,設置所有的rhtml文件編碼格式為UTF-8
          <meta http-equiv="Content-type" content="text/rhtml; charset=utf-8" />
          注意為utf-8 或者UTF-8  不能為utf8

          4,打開:application.rb:修改代碼如下顯示:(這步一定要有,最重要)
          class ApplicationController < ActionController::Base

           #為應用程序中所有controller的action添加如下filter。
           before_filter :set_charset

            #設置字符集
            def set_charset
            @headers["Content-Type"] = "text/html; charset=utf8"
            @response.headers["Content-Type"] = "text/html; charset=utf8"
            suppress(ActiveRecord::StatementInvalid) do
             ActiveRecord::Base.connection.execute 'SET NAMES utf8'
            end
            end

          end

          至此,你的Rails工程的中文亂碼已經得到解決

          補充:有些人在mysql的客戶端工具中文顯示是正常的,但是在Console中顯示確實亂碼,這是因為windows中文版默認的編碼方式是gb2312,
          所以要想顯示正常,需在Console中輸入 set charset gb2312; 或者gbk...然后中文顯示就正常了.



          write by feng
          posted on 2009-03-09 09:43 fl1429 閱讀(1484) 評論(0)  編輯  收藏 所屬分類: Rails
          已訪問數:
          free counters
          主站蜘蛛池模板: 三都| 青龙| 乌兰县| 罗甸县| 醴陵市| 白沙| 白城市| 四川省| 青河县| 阿拉善左旗| 普洱| 天镇县| 辉南县| 桦甸市| 兰西县| 淮南市| 东城区| 定兴县| 维西| 元朗区| 吴堡县| 南雄市| 上栗县| 阿坝| 光山县| 双江| 龙泉市| 平安县| 宁海县| 游戏| 德清县| 名山县| 澜沧| 姜堰市| 灵山县| 普安县| 尖扎县| 堆龙德庆县| 丹巴县| 广宁县| 云阳县|