成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Rails中文問題解決方法(FreeBSD+MySQL)

開發 開發工具
Rails中文問題的解決方法有很多,但視情況不同,未必都有用。本文介紹在FreeBSD下,MySQL 5.1.33和Rails 2.3.3下如何解決Rails中文問題。

有關Rails中文問題,在網上看了很多的解決方法,都沒有成功,經過多次試驗,終于成功,并且覺得網上有些內容寫得不對,在這里,我總結一下我的中文處理方法。

Rails中文問題解決方案步驟

1.操作系統:FreeBSD

2.數據庫是mysql 5.1.33 在安裝在FreeBSD之后,在默認路徑是/usr/local/mysql。 在support-files文件夾中,將一個配置文件復制到/etc中,并改名為my.cnf,這就是mysql的默認配置文件,修改此文件,在文件中的[client],[mysqld],[mysql]部分增加“default-character-set=gbk”。重啟數據庫,就可以將數據庫一些配置改成gbk。進行數據庫后,運行“ show variables like 'character_set_%';”后結果:

  1. +--------------------------+----------------------------------+  
  2. | Variable_name            | Value                            |  
  3. +--------------------------+----------------------------------+  
  4. | character_set_client     | gbk                              |   
  5. | character_set_connection | gbk                              |   
  6. | character_set_database   | utf8                             |   
  7. | character_set_filesystem | binary                           |   
  8. | character_set_results    | gbk                              |   
  9. | character_set_server     | gbk                              |   
  10. | character_set_system     | utf8                             |   
  11. | character_sets_dir       | /usr/local/mysql/share/charsets/ |   
  12. +--------------------------+----------------------------------+ 

3.rails使用2.3.3,建立rails項目后,將config/database.yml中的encoding改為gbk.

4.在編寫程序時,使用utf-8編碼編寫.rb文件,如果頁面中提交的參數中有中文,那么提交后中文后變成亂碼,這樣就要用gbk將參數先進行轉碼(這個要根據你的程序進行編寫,我的程序 的公用部分這樣寫的)

在application_controller.rb中增加

  1. before_filter :set_charset 
  2. def set_charset  
  3.     headers["Content-Type"] = "text/html; charset=utf-8" 
  4. end 
  5.  
  6. #解析參數  
  7. parameters = @request.parameters  
  8. parameters.each do |key, value|  
  9.  #value is being encoded if chinese  
  10.  parameters[key] = gbk(value)  
  11. end 
  12.  
  13. #from utf-8 to gb2312  
  14. def self.gbk(text = '')  
  15.  return '' if text.blank?  
  16.  text = Iconv.conv('gb2312//IGNORE''utf-8//IGNORE', text)  
  17.  return text  
  18. end 

這樣在寫入數據庫中就是中文了。

5.在取出數據庫信息后要進行utf8編碼

6.在輸出頁面中要加入“< meta http-equiv="content-type" content="text/html; charset=utf-8"/>”

這樣就可能正確顯示中文了,總之,轉碼的過程是:utf8->gbk這是從頁面到數據庫的過程,從數據庫到頁面是gbk->utf8。

這樣就介紹了Rails中文問題的解決方法。本文來自Ming's Blog:《Rails, Mysql, FreeBSD中文問題解決》。

【編輯推薦】

  1. Ruby on Rails入門之道
  2. Ruby on Rails 2.3.3發布 主要修復Bug
  3. Ruby on Rails開發的五點建議
  4. 淺談Ruby和JRuby的學習
  5. Web開發誰更高效 Java對決Ruby on Rails
責任編輯:yangsai 來源: Ming's Blog
相關推薦

2009-07-17 14:33:05

Jython中文問題

2009-06-09 15:51:07

Java ee中文問題解決方法

2011-03-18 18:47:34

QtMySQL

2009-02-18 14:28:23

編碼亂碼JSP

2009-12-28 10:56:45

WPF Image

2011-06-14 13:41:27

muleWSDL

2010-07-29 15:28:47

Flex安全沙箱

2009-02-26 11:13:41

Weblogic中間件JSP

2010-06-09 16:33:46

Cacti中文

2010-08-03 09:12:52

Flex安全沙箱

2010-05-26 11:08:33

SVN管理

2011-06-13 16:16:32

Qt 中文問題

2010-01-13 21:06:37

雙絞線

2011-05-18 14:00:30

在線備份

2009-11-17 10:43:59

ubuntu 9.10輸入法解決方法

2009-10-29 10:04:57

VB.NET Read

2010-05-11 15:09:51

Unix系統

2009-12-21 18:39:24

WCF字符串過長問題

2010-12-31 16:31:08

服務器常見問題

2009-07-22 17:50:14

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一区二区三区日本 | 在线视频a | 国产精品成人在线 | 亚洲成人二区 | 国产精久久久久久久 | 天天色综网 | 国产成人精品999在线观看 | 精品日韩一区二区三区 | 亚洲综合中文字幕在线观看 | 能免费看的av| 精品视频一区二区三区四区 | 精品亚洲二区 | 国产在线中文字幕 | 毛片.com| a天堂在线| 男女国产网站 | 综合激情av| 精品日本中文字幕 | 国产免费自拍 | 91精品国产91久久久久游泳池 | 欧美日在线 | 成人国产精品久久 | 亚洲欧美一区二区三区1000 | 久久久久久成人 | 男女视频在线免费观看 | 一级片在线观看 | 久久久日韩精品一区二区三区 | av黄色免费在线观看 | 美日韩精品 | 中文字幕av高清 | 亚洲高清电影 | 午夜激情一区 | 亚洲午夜精品一区二区三区 | 国产在线精品一区二区三区 | 日韩1区2区| 久久久久九九九九 | 99九九久久| 免费在线观看h片 | 天天天久久久 | 羞羞在线视频 | 99久久久无码国产精品 |