前言:在"快快樂樂學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資料表內容如下所示500)this.width=500'>步驟二:2.1執行命令 rails flexrss 建立一個新的Ruby On Rails 應用程式,該應用程式資料夾為flexrss。2.2執行命令 cd flexrss 進入該目錄中,並且執行以下指令 ruby script/generate model showrssview ruby script/generate controller showrsssviews2.3切換目錄至flexrssappcontrollers 開啟showrsssviews_controller.rb該檔更新內容如下所示class ShowrsssviewsController < ApplicationController def list @Showrsssviews = Showrssview.find :all render :xml => @Showrsssviews.to_xml endend2.3執行命令 ruby script/server 啟動SERVER2.4開啟IE瀏覽器在網址列輸入以下資料 http://localhost:3000/Showrsssviews/list發生亂碼?????
500)this.width=500'>步驟三:當你在執行時發現瀏覽器上出先亂碼,因為在建立MYSQL時我們已經將資料庫設為UTF8的編碼,所以不是資料庫的產生亂碼的問題。應該是Ruby On Rails在做資料庫連結時預設的編碼問題。解決方法:
設定encoding: utf8表示在該應用程式連結資料庫時是使用UTF8的編碼。切換目錄至flexrssconfig開啟database.yml500)this.width=500'>adapter: mysqldatabase: flexrss_testusername: rootpassword:host: localhost改為environment.rbadapter: mysqldatabase: flexrss_testusername: rootpassword:host: localhostencoding: utf8SERVER 重新啟動,再次開啟IE瀏覽器在網址列輸入以下資料 http://localhost:3000/Showrsssviews/list亂碼問題已獲得解決500)this.width=500'>結束:透過Ruby On Rails可以讓我們粉快的將資料輸出成XML格式,在後面的範例中我將介紹Ruby On Rails 跟 FLEX的整合範例,希望有時間寫!! |