歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 23, 2024, 03:03:10 上午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  我安裝了1.2.4,網誌名稱取中文就會變成???? « 上篇主題 下篇主題 »
頁: [1]
作者 主題: 我安裝了1.2.4,網誌名稱取中文就會變成????  (閱讀 16559 次)
breezeccn
新手見習
*
文章: 4


檢視個人資料
« 於: 九月 04, 2007, 08:46:38 下午 »

不知道是不是語系的問題…
還是資料庫的問題…
重新命名後還是一樣…
不知道有沒有那位前輩知道可能的原因…
我第一次使用…請大家多指教
已記錄
breezeccn
新手見習
*
文章: 4


檢視個人資料
« 回覆文章 #1 於: 九月 04, 2007, 09:53:15 下午 »

情形請連結進來看一下
http://163.27.216.2/plog/index.php?blogId=1
已記錄
bibicall
版主
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #2 於: 九月 05, 2007, 02:47:43 上午 »

不知道是不是語系的問題…
還是資料庫的問題…
重新命名後還是一樣…
不知道有沒有那位前輩知道可能的原因…
我第一次使用…請大家多指教

是資料庫的問題
請確定新增資料庫時,連線校對是utf8 general ci
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
breezeccn
新手見習
*
文章: 4


檢視個人資料
« 回覆文章 #3 於: 九月 05, 2007, 08:06:45 下午 »

感謝大大的回覆…
安裝時…資料庫連結的確不是utf8 general ci
我是手動選擇的…
我想是這個步驟產生問題的…
請問我該怎麼做…
直接進入phpmyadmin改嗎?
還是…
ps.我的主機是freebsd6、php5
已記錄
hlps9999
版主
資深會員
*****
文章: 288



檢視個人資料 個人網站
« 回覆文章 #4 於: 九月 06, 2007, 01:11:41 上午 »

文章亂碼的部分,反正是剛安裝,刪除舊的資料庫,用phpmyadmin手動建立新的資料庫,編碼設定為utf8,再重新wizard.php吧!

至於註冊時網誌名稱用中文會出現亂碼,剛剛有找到個解決方式
參考「register problem」 這篇文章

        修改 class/data/textfilter.class.php

        第 119行
        return htmlentities( $string );  改成

        return htmlspecialchars( $string );

不過不確定這樣日後是否會有其他影響,至少註冊時用中文網誌名稱就不會出現亂碼了。
« 最後編輯時間: 九月 06, 2007, 01:16:32 上午 由 hlps9999 » 已記錄
breezeccn
新手見習
*
文章: 4


檢視個人資料
« 回覆文章 #5 於: 九月 11, 2007, 02:03:30 下午 »

對不起…這幾天比較沒空…所以現在才回覆…
問題的確解決…果然是資料庫的問題…
謝謝啦
已記錄
hlps9999
版主
資深會員
*****
文章: 288



檢視個人資料 個人網站
« 回覆文章 #6 於: 九月 12, 2007, 10:48:08 下午 »

近日也才發現有這問題,不過應該不是修改這檔案的關係
我在未修改過這檔案的1.2.4版及1.2.1版均發現有此問題

網誌名稱用某些字就會出現這問題
例如網誌名稱為「活力家族」就會出錯,
但若改成「站台名稱活力家族」,就又沒問題
已記錄
shime
新手見習
*
文章: 5


檢視個人資料
« 回覆文章 #7 於: 九月 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
         * 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.
         *
說明了此方法為了是要讓部落格名稱可以放在URL中使用,且使用此方法將對非iso-8859-X語系的字串產生影響
因此,考慮了自己的現況(1.以後如果要用簡短網址應該不可能讓中文的部落格名稱放在URL上面、2.使用utf-8中文語系,也就是非iso-8859-X語系 :-(啦)
所以就做了上述的修改

另外,在註冊時發生部落格名稱會產生亂碼的現象,小弟發現在註冊時,部落格的名稱會經過兩次文字過濾,第一個為HtmlFilter方法過濾、第二個為BlogNameValidator過濾,其中第二個過濾所產生的問題剛剛已經解決了,現在要來解決第一個問題。

在解決第一個問題之前,小弟發現在管理介面中,由管理者新增部落格、修改部落格時,在對部落格名稱文字過濾時,僅做了filterAllHTML方法過濾與BlogNameValidator方法過濾,因此,小弟就投機取巧的依樣畫葫蘆將這個問題改用filterAllHTML方法來作文字過濾,如此,就沒有新註冊時會產生部落格名稱的亂碼問題了。(不過,都說了是投機取巧,不曉得原本使用HtmlFilter方法的用意為何,小弟也沒有認真的去理解HtmlFilter方法用意為何了  吐舌頭)

新註冊產生亂碼的解決方法為下:
將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版本
已記錄
頁: [1]
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  我安裝了1.2.4,網誌名稱取中文就會變成???? « 上篇主題 下篇主題 »
    前往: