主題: 我安裝了1.2.4,網誌名稱取中文就會變成???? 作者: breezeccn 於 九月 04, 2007, 08:46:38 下午 不知道是不是語系的問題…
還是資料庫的問題… 重新命名後還是一樣… 不知道有沒有那位前輩知道可能的原因… 我第一次使用…請大家多指教 主題: Re: 我安裝了1.2.4,網誌名稱取中文就會變成???? 作者: breezeccn 於 九月 04, 2007, 09:53:15 下午 情形請連結進來看一下
http://163.27.216.2/plog/index.php?blogId=1 主題: Re: 我安裝了1.2.4,網誌名稱取中文就會變成???? 作者: bibicall 於 九月 05, 2007, 02:47:43 上午 不知道是不是語系的問題… 還是資料庫的問題… 重新命名後還是一樣… 不知道有沒有那位前輩知道可能的原因… 我第一次使用…請大家多指教 是資料庫的問題 請確定新增資料庫時,連線校對是utf8 general ci 主題: Re: 我安裝了1.2.4,網誌名稱取中文就會變成???? 作者: breezeccn 於 九月 05, 2007, 08:06:45 下午 感謝大大的回覆…
安裝時…資料庫連結的確不是utf8 general ci 我是手動選擇的… 我想是這個步驟產生問題的… 請問我該怎麼做… 直接進入phpmyadmin改嗎? 還是… ps.我的主機是freebsd6、php5 主題: Re: 我安裝了1.2.4,網誌名稱取中文就會變成???? 作者: hlps9999 於 九月 06, 2007, 01:11:41 上午 文章亂碼的部分,反正是剛安裝,刪除舊的資料庫,用phpmyadmin手動建立新的資料庫,編碼設定為utf8,再重新wizard.php吧!
至於註冊時網誌名稱用中文會出現亂碼,剛剛有找到個解決方式 參考「register problem (http://forums.lifetype.net/viewtopic.php?t=6921)」 這篇文章 修改 class/data/textfilter.class.php 第 119行 return htmlentities( $string ); 改成 return htmlspecialchars( $string ); 不過不確定這樣日後是否會有其他影響,至少註冊時用中文網誌名稱就不會出現亂碼了。 主題: Re: 我安裝了1.2.4,網誌名稱取中文就會變成???? 作者: breezeccn 於 九月 11, 2007, 02:03:30 下午 對不起…這幾天比較沒空…所以現在才回覆…
問題的確解決…果然是資料庫的問題… 謝謝啦 主題: Re: 我安裝了1.2.4,網誌名稱取中文就會變成???? 作者: hlps9999 於 九月 12, 2007, 10:48:08 下午 近日也才發現有這問題,不過應該不是修改這檔案的關係
我在未修改過這檔案的1.2.4版及1.2.1版均發現有此問題 網誌名稱用某些字就會出現這問題 例如網誌名稱為「活力家族」就會出錯, 但若改成「站台名稱活力家族」,就又沒問題 主題: Re: 我安裝了1.2.4,網誌名稱取中文就會變成???? 作者: shime 於 九月 13, 2007, 03:07:55 下午 小弟的方法是去修改了 BlogNameValidator 這個類別
將其validate方法中的 引用 return(( Textfilter::domainize( Textfilter::filterAllHTML( $value ))) != "" ); 修改為引用 return(( Textfilter::filterAllHTML( $value )) != "" ); 也就是不作domainize的字串過濾動作因為在domainize方法(也就是urlize($string, true)這個方法)中的註解提到 引用 * Given a string, convert it into something that can be used in a URL (it probably doesn't work very 說明了此方法為了是要讓部落格名稱可以放在URL中使用,且使用此方法將對非iso-8859-X語系的字串產生影響* well with non iso-8859-X strings) It will remove the following characters: * * ; / ? : @ & = + $ , * * It will convert accented characters such as �, �, �, etc to their non-accented counterparts (a, e, i) And * any other non-alphanumeric character that hasn't been removed or replaced will be thrown away. * 因此,考慮了自己的現況(1.以後如果要用簡短網址應該不可能讓中文的部落格名稱放在URL上面、2.使用utf-8中文語系,也就是非iso-8859-X語系 :-(啦) 所以就做了上述的修改 另外,在註冊時發生部落格名稱會產生亂碼的現象,小弟發現在註冊時,部落格的名稱會經過兩次文字過濾,第一個為HtmlFilter方法過濾、第二個為BlogNameValidator過濾,其中第二個過濾所產生的問題剛剛已經解決了,現在要來解決第一個問題。 在解決第一個問題之前,小弟發現在管理介面中,由管理者新增部落格、修改部落格時,在對部落格名稱文字過濾時,僅做了filterAllHTML方法過濾與BlogNameValidator方法過濾,因此,小弟就投機取巧的依樣畫葫蘆將這個問題改用filterAllHTML方法來作文字過濾,如此,就沒有新註冊時會產生部落格名稱的亂碼問題了。(不過,都說了是投機取巧,不曉得原本使用HtmlFilter方法的用意為何,小弟也沒有認真的去理解HtmlFilter方法用意為何了 :-P) 新註冊產生亂碼的解決方法為下: 將doBlogRegistration類別,27行,作註解 引用 $this->_request->registerFilter( "blogName", new HtmlFilter( true )); 再來同樣將這個類別的,88行原始為 引用 SessionManager::setSessionValue( "blogName", $this->_request->getValue( "blogName" )); 修改為引用 SessionManager::setSessionValue( "blogName", Textfilter::filterAllHTML($this->_request->getValue( "blogName" ))); 這樣就可以啦(前提你的BlogNameValidator類別需要先作修改才行)以上是小弟的解決方法,不知是否會產生安全上的問題,還請各位多指教 ps.我的為1.2.3版本 |