初學(xué)Rails,簡(jiǎn)單的做了一個(gè)例子,發(fā)現(xiàn)存在中文問(wèn)題。
大致中文問(wèn)題歸類如下:
?????? 1、頁(yè)面無(wú)法顯示中文,產(chǎn)生中文亂碼
?????? 2、Mysql數(shù)據(jù)庫(kù)采用utf8后,頁(yè)面采用utf8,數(shù)據(jù)庫(kù)保存是亂碼,但頁(yè)面顯示正常。
?????? 3、時(shí)間格式在頁(yè)面上的中文顯示產(chǎn)生亂碼。
打開:application.rb:修改代碼如下顯示:
1?class?ApplicationController?<?ActionController::Base?
2?before_filter?:set_charset?
3?def?set_charset?
4?@headers["Content-Type"]?=?"text/html;?charset=utf-8"?
5?end?
6?end?
同時(shí)對(duì)頁(yè)面(*.rhtml)上進(jìn)行增加編碼控制:
<meta?http-equiv="Content-type"?content="text/rhtml;?charset=utf8"?/>
同時(shí)在保存頁(yè)面時(shí),進(jìn)行編碼轉(zhuǎn)換成utf8格式。
做完以上工作的話,利用mysql數(shù)據(jù)庫(kù)客戶端工具Navicat查看數(shù)據(jù)庫(kù),你會(huì)發(fā)現(xiàn)數(shù)據(jù)庫(kù)中保存的中文數(shù)據(jù)會(huì)出現(xiàn)亂碼,因此需要進(jìn)一步處理:
1、建數(shù)據(jù)庫(kù)時(shí)采用utf8編碼進(jìn)行建庫(kù),同時(shí)建表或者導(dǎo)表時(shí)要注意采用utf8編碼。
2、采用Navicat連接數(shù)據(jù)庫(kù)時(shí)在Advanced Settings中選擇Encoding編碼為utf8,同時(shí)取消Use MySQL character set的默認(rèn)選項(xiàng),再進(jìn)行連接。
進(jìn)行以上設(shè)置,將會(huì)在數(shù)據(jù)庫(kù)中顯示出正常的中文。同時(shí)頁(yè)面上顯示也會(huì)是中文,但你會(huì)發(fā)現(xiàn)對(duì)于時(shí)間的顯示上仍然存在一些小問(wèn)題。因此在輸出時(shí)間時(shí)需要進(jìn)行(original_date.strftime("%Y/%m/%d"))轉(zhuǎn)換格式。
完成。
繼續(xù)學(xué)習(xí)中......,發(fā)現(xiàn)新的問(wèn)題,再更新。
posted on 2006-09-27 11:55
閔毓 閱讀(6468)
評(píng)論(6) 編輯 收藏 所屬分類:
其他