快快樂樂學Ruby On Rails (1.1)-UTF8編碼與MYSQL輸出XML資料:ROR(紅寶石的秘密):Xuite日誌
  • 最新文章
  • 最新回應
  • Re:用Eclipse打造Rails的開發環境,by(感謝)於2006-12-07
    Re:Ruby on Rails官方網站,by(小池)於2006-11-01
    Re:Ruby on Rails官方網站,by(CFC)於2006-11-01
  • 文章分類
  • 最愛連結
  • 已建立的日誌
  • 小池
  • 唯有不斷學習
    不斷分享
    才會不斷進步....

  • 搜尋文章
  • 關鍵字
    2006-10-25 22:38 快快樂樂學Ruby On Rails (1.1)-UTF8編碼與MYSQL輸出XML資料
  • ?
  • Rails
  • 好文轉寄
  • 平均分數:0 顆星    投票人數:0
    我要評分:
    標籤 : 


    前言:

    在"快快樂樂學Ruby On Rails (1.1)-整合環境篇" 該篇中我們提到了使用 Instant Rails 做ROR的開發。今天在這裡我將探討UTF8編碼問題和XML資料的輸出處裡的範例。

    說明:
    由於我是使用Instant Rails
    做ROR範例講解,若是你還沒有Ruby On Rails 的開發環境,你可以參考"快快樂樂學Ruby On Rails (1.1)-整合環境篇"該篇的開發環境設定教學。

    步驟一:
    Instant Rails安裝後,該整合環境中有將MYSQL整合進來,所以你可以啟動該軟體中整合的MYSQL並使用PHPMYADMIN管理MYSQL資料庫。
    你可以使用你熟悉的MYSQL管理工具,當你安裝後Instant Rails該MYSQL預設帳號為 ROOT,預設密碼為 空白 。

    首先執行以下得SQL語法(注意:建立flexrss_development資料庫並將編碼設為UTF8編碼)

    DROP DATABASE IF EXISTS `flexrss_development`;
    CREATE DATABASE `flexrss_development`;
    USE `flexrss_development`;
    CREATE TABLE `showrssviews` (
      `id` int(11) NOT NULL auto_increment,
      `sitename` varchar(255) default NULL,
      `sitehttp` varchar(200) default NULL,
      `sitesrc` varchar(255) default NULL,
      `score` int(11) default NULL,
      `author` varchar(120) default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

    然後再執行以下SQL指令在showrssviews資料表裡新增一些資料

    INSERT INTO `showrssviews` (`id`,`sitename`,`sitehttp`,`sitesrc`,`score`,`author`) VALUES (1,'爪哇豆的秘密(JAVA)','http://blog.xuite.net/jameschih/java','提供WEB程式開發技巧!!',10,'Jameschih');

    INSERT INTO `showrssviews` (`id`,`sitename`,`sitehttp`,`sitesrc`,`score`,`author`) VALUES (2,'織夢線上','http://www.dreamweaver.com.tw','分享交流Dreamweaver開發網站的心得與技巧',10,'茶米');

    INSERT INTO `showrssviews` (`id`,`sitename`,`sitehttp`,`sitesrc`,`score`,`author`) VALUES (3,'立峰音樂網',' http://www.kingfore.com.tw','給你24小時不停止的音樂!!',10,'YUGO');

    執行完後該showrssviews資料表內容如下所示

    步驟二:
    2.1執行命令 rails flexrss 建立一個新的Ruby On Rails 應用程式,該應用程式資料夾為flexrss。

    2.2執行命令 cd flexrss 進入該目錄中,並且執行以下指令    

    ruby script/generate model showrssview  
    ruby script/generate controller showrsssviews

    2.3切換目錄至flexrssappcontrollers 開啟showrsssviews_controller.rb該檔
    更新內容如下所示

    class ShowrsssviewsController < ApplicationController
      def list
          @Showrsssviews = Showrssview.find :all
          render :xml => @Showrsssviews.to_xml
     end
    end

    2.3執行命令 ruby script/server 啟動SERVER

    2.4開啟IE瀏覽器在網址列輸入以下資料 http://localhost:3000/Showrsssviews/list
    發生亂碼?????






    步驟三:

    當你在執行時發現瀏覽器上出先亂碼,因為在建立MYSQL時我們已經將資料庫設為UTF8的編碼,所以不是資料庫的產生亂碼的問題。應該是Ruby On Rails在做資料庫連結時預設的編碼問題。

    解決方法:

    設定encoding: utf8表示在該應用程式連結資料庫時是使用UTF8的編碼。

    切換目錄至flexrssconfig開啟database.yml


    adapter: mysql
    database: flexrss_test
    username: root
    password:
    host: localhost

    改為

    environment.rb
    adapter: mysql
    database: flexrss_test
    username: root
    password:
    host: localhost
    encoding: utf8

    SERVER 重新啟動,再次開啟IE瀏覽器在網址列輸入以下資料 http://localhost:3000/Showrsssviews/list
    亂碼問題已獲得解決

    結束:
    透過Ruby On Rails可以讓我們粉快的將資料輸出成XML格式,在後面的範例中我將介紹Ruby On Rails 跟 FLEX的整合範例,希望有時間寫!!



    小池 / Xuite日誌 / 回應(0) / 引用(0) / 好文轉寄
  • 回應