LifeType 中文開發論壇

支援 => 使用與操作 => 主題作者是: Stud 於 九月 19, 2005, 07:44:47 上午



主題: 亂碼的問題
作者: Stud九月 19, 2005, 07:44:47 上午
之前為了改一些用詞,而把lang原碼utf-8改成big-5,結果出現許功蓋的亂碼問題.
如果我要解決亂碼問題,是不是先把資料庫裡的編碼先改為utf-8,然後重灌一次
plog(原碼)就可以了?原先存在資料庫裡的內容會正常顯示嗎?謝謝指導.


主題: Re: 亂碼的問題
作者: lss九月 19, 2005, 08:55:08 上午
之前為了改一些用詞,把lang原碼utf-8改成big-5,結果出現許功蓋的亂碼問題.
如果我要解決亂碼問題,是不是先把資料庫裡的編碼先改為utf-8,然後重灌一次
plog(原碼)就可以了?原先存在資料庫裡的內容會正常顯示嗎?謝謝指導.
請先描述清楚你的問題:

1.「把 lang 原碼…」部份是指你修變了 plog 原始碼的什麼地方或是什麼設定?

2.「先把資料庫…」部份,你的 MySQL 是用那一版(應該是 > 4.1吧)?你有修改過資料庫的語系嗎?改之前有資料嗎?改之後有新的文章加入資料庫嗎?

用猜的很難幫你忙。


主題: Re: 亂碼的問題
作者: Stud九月 19, 2005, 12:16:03 下午
請先描述清楚你的問題:
1.「把 lang 原碼…」部份是指你修變了 plog 原始碼的什麼地方或是什麼設定?
2.「先把資料庫…」部份,你的 MySQL 是用那一版(應該是 > 4.1吧)?你有修改過資料庫的語系嗎?改之前有資料嗎?改之後有新的文章加入資料庫嗎?
sorry.我的意思是
1. /plog/locale/local_zh_TW.php 這個檔的內容,原先是 $messages['encoding'] = 'utf-8'; 我把它改為 big5 且 $messages['recently'] = '近期文章'; 這些中文字,我也把它轉換成 big5 碼,因為我想把一些用詞改為較口語化.
2. MySQL 是 4.18 版,語系我是設為內定,應該是 latin-1 吧,我想把它改成 utf-8,但因現在裡面有一些資料,也就是 blog 裡已經有文章了,如果我改成 utf-8 會有任何影嗎?比方說舊文章會變成亂碼,讀不出來之類的?
再次謝謝囉.


主題: Re: 亂碼的問題
作者: lss九月 19, 2005, 04:19:35 下午
stud:

要修改翻譯檔裡的用語,直接改就行了,不需要把編碼改成 big5。只要記得存檔時一定要存成 utf8 而且不要有 BOM 就行了。如果一定要用 big5 ,你就得自行想辦法解決 big5 的衝碼問題了。

至於資料庫的部份,如果你現在的語系是 latin-1 ,我個人的經驗是:直接把資料庫語系改成 utf8 的話,MySQL 似乎會替你做一次編碼,那就會把原先用 utf8 儲存但被當作 latin-1 的資料再轉一次 utf8 ,所以資料應該是會被破壞。

你可以先試試:
1.複製一份資料庫。
2.將新資料庫的語系重設為 utf-8。
3.修改 plog/config/config.properties.php 讓你的 pLog 使用複製的資料庫。

如果一切正常的話,那表示我記錯了,恭喜你問題解決。如果不幸我記得正確,問題沒解決,想救資料得話得動大手術了。那就要看你的資料庫裡的文章多不多,值不值得你花這個時間和精力了。

good luck


主題: Re: 亂碼的問題
作者: Stud九月 19, 2005, 06:14:14 下午
感謝 lss 的指導.

我是使用 ultraedit 修改 locale 檔,因原碼是 utf-8 怎麼顯示都是亂碼,根本看不懂是什麼字,所以才轉成 big5 碼.
我現在的想法是,用 convertz 這套工具,把我已修改好的所有檔案,再從 big5 轉回 utf-8,上傳到伺服器裡覆蓋,
這樣應該不會有問題才對吧?

資料庫的部份,從最初到現在一直是 latin-1 所以應該不會出現你說的資料被破壞問題才對.不過,我會照你所
說,先備份一份來試試看.現有文章量雖不多,但總是會員的心血結晶,怎麼樣也得幫他們保存下來才行,這是
我們的責任.


主題: Re: 亂碼的問題
作者: lss九月 19, 2005, 10:44:25 下午
感謝 lss 的指導.

我是使用 ultraedit 修改 locale 檔,因原碼是 utf-8 怎麼顯示都是亂碼,根本看不懂是什麼字,所以才轉成 big5 碼.
我現在的想法是,用 convertz 這套工具,把我已修改好的所有檔案,再從 big5 轉回 utf-8,上傳到伺服器裡覆蓋,
這樣應該不會有問題才對吧?
pLog 的 php 程式使用沒有 BOM 檔頭的 utf-8 格式,ultraedit 應該可以切換這種編碼方式才對。不過我沒在用 ultraedit ,詳情並不清楚。
先前在論壇看到有人提過(似乎是 mark )吧,好像要最一點的版本才看得到這個功能的樣子。

資料庫的部份,從最初到現在一直是 latin-1 所以應該不會出現你說的資料被破壞問題才對.不過,我會照你所
說,先備份一份來試試看.現有文章量雖不多,但總是會員的心血結晶,怎麼樣也得幫他們保存下來才行,這是
我們的責任.
既然如此,那也不必換做更換啦!看你先前的提問,以為你曾經換過。使用 latin-1 有個小缺點,如果你要用 phpMyAdmin 管理資料庫時,
內容好像會變成亂碼,但那只是 MySQL 設定的問題,資料是正確的。


主題: Re: 亂碼的問題
作者: Stud九月 20, 2005, 10:41:00 上午
我來報告一下結果,有點複雜,花了一整晚的結果是白忙一場 :'(

1.我先把以前改好的原碼(*.php *.template)從big5轉到utf8,結果有點問題,因為我用全選的方式,其實有些檔案本就是utf8碼,最後只好手動改.
2.我複製資料庫plog,變成oldplog,然後config裡也改成讀oldplog資料庫,所有的校正也從lantin1改成utf8.這樣的結果是,選項都顯示正常,但blog名稱跟文章標題,內容,回覆(或叫做迴響),卻是亂碼.
3.我想可能是文章內容都還是big5,所以把這些有中文內容的資料庫一一輸出,再透過convertz工具轉碼,匯回資料庫
4.結果差強人意.大部份的中文都可閱讀,連許功蓋也沒問題,但部份字,像「不,搞」卻是亂碼.
5.氣起來,拿未曾改過的plog原碼再重灌一遍,這次建立新資料庫utfplog,以utf8碼建立
6.照道理應該都沒問題,可是仍像步驟4一樣,就那些字會出現亂碼,連第一篇內建的恭喜,那個恭就是亂碼.why?
7.回來看到 lss 說資料庫可以不用改成 utf8,我再試著把 config 去讀最早的 plog 資料庫(以 lantin1 校正,資料是以 big5 編碼),結果顯示全是 ? 號
8.不得已,把一切恢復原狀,雖然許功蓋這幾個字會出現亂碼,但問題沒那麼多.

我是在 FC3 底下 PHP 4.34 + MySQL 4.018 + Zeus Web Server (負載能力比 apache 強,但 subdomain 我一直搞不定).


主題: Re: 亂碼的問題
作者: markwu九月 20, 2005, 10:41:43 上午
感謝 lss 的指導.

我是使用 ultraedit 修改 locale 檔,因原碼是 utf-8 怎麼顯示都是亂碼,根本看不懂是什麼字,所以才轉成 big5 碼.
我現在的想法是,用 convertz 這套工具,把我已修改好的所有檔案,再從 big5 轉回 utf-8,上傳到伺服器裡覆蓋,
這樣應該不會有問題才對吧?

資料庫的部份,從最初到現在一直是 latin-1 所以應該不會出現你說的資料被破壞問題才對.不過,我會照你所
說,先備份一份來試試看.現有文章量雖不多,但總是會員的心血結晶,怎麼樣也得幫他們保存下來才行,這是
我們的責任.

你的 ultraedit 是哪一版阿?

另外,建議你備份下來在試轉,千萬不要用 production server 來冒險。

Mark


主題: Re: 亂碼的問題
作者: Stud九月 20, 2005, 10:43:03 上午
你的 ultraedit 是哪一版阿?
另外,建議你備份下來在試轉,千萬不要用 production server 來冒險。
Mark
10.0 英文版.
我發現用 utlraedit, wordpad 無法看 utf8 編碼的文字,
用 notepad 筆記本反而可以,奇怪...


主題: Re: 亂碼的問題
作者: markwu九月 20, 2005, 10:43:35 上午
我來報告一下結果,有點複雜,花了一整晚的結果是白忙一場 :'(

1.我先把以前改好的原碼(*.php *.template)從big5轉到utf8,結果有點問題,因為我用全選的方式,其實有些檔案本就是utf8碼,最後只好手動改.
2.我複製資料庫plog,變成oldplog,然後config裡也改成讀oldplog資料庫,所有的校正也從lantin1改成utf8.這樣的結果是,選項都顯示正常,但blog名稱跟文章標題,內容,回覆(或叫做迴響),卻是亂碼.
3.我想可能是文章內容都還是big5,所以把這些有中文內容的資料庫一一輸出,再透過convertz工具轉碼,匯回資料庫
4.結果差強人意.大部份的中文都可閱讀,連許功蓋也沒問題,但部份字,像「不,搞」卻是亂碼.
5.氣起來,拿未曾改過的plog原碼再重灌一遍,這次建立新資料庫utfplog,以utf8碼建立
6.照道理應該都沒問題,可是仍像步驟4一樣,就那些字會出現亂碼,連第一篇內建的恭喜,那個恭就是亂碼.why?
7.回來看到 lss 說資料庫可以不用改成 utf8,我再試著把 config 去讀最早的 plog 資料庫(以 lantin1 校正,資料是以 big5 編碼),結果顯示全是 ? 號
8.不得已,把一切恢復原狀,雖然許功蓋這幾個字會出現亂碼,但問題沒那麼多.

我是在 FC3 底下 PHP 4.34 + MySQL 4.018 + Zeus Web Server (負載能力比 apache 強,但 subdomain 我一直搞不定).

用 1.0.2 beta 來作,因為在 pLog 1.0.1 有一個 adodb 的 bug, 1.0.2 beta 已經修復了。

Mark


主題: Re: 亂碼的問題
作者: Stud九月 20, 2005, 10:47:09 上午
1.02 在哪抓?是不是什麼都不要改,1.02安裝好後,去呼叫現有的 plog 資料庫即可?


主題: Re: 亂碼的問題
作者: lss九月 20, 2005, 12:17:02 下午
stud:

我對不起你,我忘了 adodb 的 mysql driver bug 的事了。___Orz

pLog 1.0.2 beta 看這裡:
http://forum.lifetype.org.tw/index.php?topic=1173.from1127121628;topicseen#msg6858

lss  :'( :'( :'(


主題: Re: 亂碼的問題
作者: james九月 20, 2005, 04:25:48 下午
你的 ultraedit 是哪一版阿?
另外,建議你備份下來在試轉,千萬不要用 production server 來冒險。
Mark
10.0 英文版.
我發現用 utlraedit, wordpad 無法看 utf8 編碼的文字,
用 notepad 筆記本反而可以,奇怪...

我可以建議一個軟體叫Emeditot,它可以輕易的觀看各種編碼的文件.
你可以試用看看.(我就是用它來作中文化的動作的) :-)

James.


主題: Re: 亂碼的問題
作者: Stud九月 20, 2005, 06:46:37 下午
我可以建議一個軟體叫Emeditot,它可以輕易的觀看各種編碼的文件.
你可以試用看看.(我就是用它來作中文化的動作的) :-)
James.
感謝.我再去找找看.
我用 utlraedit 是看上它一次可以把整個目錄下的檔案搜尋,取代,
修改很方便.不曉得 Emeditot 有沒有這功能?


主題: Re: 亂碼的問題
作者: Stud九月 20, 2005, 06:49:13 下午
stud:
我對不起你,我忘了 adodb 的 mysql driver bug 的事了。___Orz
pLog 1.0.2 beta 看這裡:
http://forum.lifetype.org.tw/index.php?topic=1173.from1127121628;topicseen#msg6858
lss  :'( :'( :'(
別這麼說,我很感謝你們的指導.我現在是用1.02beta來跑了,但資料庫一切重新來過.
所有的內容,我先用 rss 備份下來,再讓會員重新註冊後,自己去貼了.


主題: Re: 亂碼的問題
作者: james九月 20, 2005, 06:58:52 下午
我可以建議一個軟體叫Emeditot,它可以輕易的觀看各種編碼的文件.
你可以試用看看.(我就是用它來作中文化的動作的) :-)
James.
感謝.我再去找找看.
我用 utlraedit 是看上它一次可以把整個目錄下的檔案搜尋,取代,
修改很方便.不曉得 Emeditot 有沒有這功能?
有 ^_^emeditor的finding in files就是你所說的功能.

Emeditor的官方網站 http://www.emeditor.com/

emeditor的特點可以參考這裡
http://www.emeditor.com/pro.htm
http://www.emeditor.com/help/features/feature_pro.htm

可以到這裡下載Emeditor pro 4.1.3英文版http://www.emeditor.com/pub/emed4131epx.exe

中文化可以到這下載 http://ftp.ntu.edu.tw/ftp//cpatch/editor/emeditor/eme413ct.zip

中文化說明 http://ftp.ntu.edu.tw/ftp//cpatch/editor/emeditor/eme413ct.txt

如果你是教育用途(學校,老師或學生用)還可以申請教育用授權喔 (是免費的  :-) ,我有申請過,只要填一個表就可以了。)

關於教育和科技授權(Academic License and Technical License)可以參考這裡 http://www.emeditor.com/help/faq/academic/index.htm

當然如果不是的話也沒關係,一樣可以使用。

希望這些資訊對你有所幫助囉 :)

James.


主題: Re: 亂碼的問題
作者: lss九月 20, 2005, 10:04:40 下午
別這麼說,我很感謝你們的指導.我現在是用1.02beta來跑了,但資料庫一切重新來過.
所有的內容,我先用 rss 備份下來,再讓會員重新註冊後,自己去貼了.
stud:

你有把舊的資料庫留下來嗎?我判斷只要更新 adodb 的 mysql driver 就可以復原了耶! :-S
所以你現在的 1.0.2b 應該可以直接用舊的資料庫才對。


主題: Re: 亂碼的問題
作者: Stud九月 20, 2005, 11:26:23 下午
你有把舊的資料庫留下來嗎?我判斷只要更新 adodb 的 mysql driver 就可以復原了耶! :-S
所以你現在的 1.0.2b 應該可以直接用舊的資料庫才對。
舊的我有留,只是很麻煩.因為我還要一個一個修改 template 檔,然後還有 plugins 底下的 lang 檔等等,
一大堆的,我改到最後已經懶得改了,要一個一個看是不是有中文在裡頭,然後挑出來,用 convertz 轉
換,再上傳到伺服器,動作簡單卻要耗很多時間,只能利用工作空檔來弄了.

我裝了1.02b後,有試著去讀舊的資料庫,不過好像沒什麼效,所以才決定要會員重新註冊,也還好現在
使用的人不是太多,才100多篇我就幫他們備份下來就行了.有時間我會再灌一個,呼叫舊的資料庫試
試.到時有結果再向各位報告.

忘了請教一點,在 spring 風格裡,月曆把 calendar 那個圖案蓋掉了,我要把月曆移下來,怎麼移不動?
在 footer.template 裡有個 <div id="calendar"> 我加個 <p> 卻只把月曆往下移,外框的 table 不會動,
因為底是白色的,所以很清楚也很難看.我應該改哪裡?


主題: Re: 亂碼的問題
作者: Stud九月 20, 2005, 11:43:31 下午
有 ^_^emeditor的finding in files就是你所說的功能.
Emeditor的官方網站 http://www.emeditor.com/
emeditor的特點可以參考這裡
http://www.emeditor.com/pro.htm
http://www.emeditor.com/help/features/feature_pro.htm
可以到這裡下載Emeditor pro 4.1.3英文版http://www.emeditor.com/pub/emed4131epx.exe
中文化可以到這下載 http://ftp.ntu.edu.tw/ftp//cpatch/editor/emeditor/eme413ct.zip
中文化說明 http://ftp.ntu.edu.tw/ftp//cpatch/editor/emeditor/eme413ct.txt
James.
感謝,我已經抓下來使用了,真的很棒,等我熟悉操作習慣後,就要把 ultraedit 砍掉了.
到時我也會在我新的軟體網推薦這套軟體的,謝啦!


主題: Re: 亂碼的問題
作者: james九月 21, 2005, 07:20:51 上午
你有把舊的資料庫留下來嗎?我判斷只要更新 adodb 的 mysql driver 就可以復原了耶! :-S
所以你現在的 1.0.2b 應該可以直接用舊的資料庫才對。
舊的我有留,只是很麻煩.因為我還要一個一個修改 template 檔,然後還有 plugins 底下的 lang 檔等等,
一大堆的,我改到最後已經懶得改了,要一個一個看是不是有中文在裡頭,然後挑出來,用 convertz 轉
換,再上傳到伺服器,動作簡單卻要耗很多時間,只能利用工作空檔來弄了.

我裝了1.02b後,有試著去讀舊的資料庫,不過好像沒什麼效,所以才決定要會員重新註冊,也還好現在
使用的人不是太多,才100多篇我就幫他們備份下來就行了.有時間我會再灌一個,呼叫舊的資料庫試
試.到時有結果再向各位報告.

忘了請教一點,在 spring 風格裡,月曆把 calendar 那個圖案蓋掉了,我要把月曆移下來,怎麼移不動?
在 footer.template 裡有個 <div id="calendar"> 我加個 <p> 卻只把月曆往下移,外框的 table 不會動,
因為底是白色的,所以很清楚也很難看.我應該改哪裡?

你必需去修改css檔囉,找到calander那個區塊改一下裡面的CSS應該就可以囉. :-)

James.


主題: Re: 亂碼的問題
作者: Stud九月 22, 2005, 01:38:43 上午
你必需去修改css檔囉,找到calander那個區塊改一下裡面的CSS應該就可以囉. :-)
James.
嗚...能不能再提示一點,我幾乎改了每個項目,都無法讓它往下移動.
我需要修改的,應該是 spring/footer.template 裡的 <div id="Menu"> 而 css 裡是

/* ******************  column b  *************** */
   
#Menu   {
   width: 170px;
   float: left;
   font:12px/1.5 trebuchet ms, verdana, arial, helvetica, sans-serif;
   color:#666;
   text-align:left;
   background-color:#fff;
   }

要如何讓它往下移?


主題: Re: 亂碼的問題
作者: james九月 22, 2005, 07:41:20 上午
你必需去修改css檔囉,找到calander那個區塊改一下裡面的CSS應該就可以囉. :-)
James.
嗚...能不能再提示一點,我幾乎改了每個項目,都無法讓它往下移動.
我需要修改的,應該是 spring/footer.template 裡的 <div id="Menu"> 而 css 裡是

/* ******************  column b  *************** */
   
#Menu   {
   width: 170px;
   float: left;
   font:12px/1.5 trebuchet ms, verdana, arial, helvetica, sans-serif;
   color:#666;
   text-align:left;
   background-color:#fff;
   }

要如何讓它往下移?
你可以告訴我你修改那些項目呢??
做了那些修改,可以把你修改的內容貼上來。
這樣我才知道你已經試過那些東西了。
當然我可以直接修改好在告訴你結果。但這樣對你的幫助不大。
所以我希望你可以先自行尋找相關的資料,試過後如果還是不行的話,那我們在一起想辦法 :-)

畢竟大家的時間都很有限,沒法一直幫別人解決所有的問題的  ^_^
套幾句廣告台詞 "Try it! Trust me! You can make it!" :-P

網路上關於如何修改CSS的教學有很多,用Google找一下看看和margin及padding有關的css項目
希望對你有幫助囉 ^_^

James.


主題: Re: 亂碼的問題
作者: Stud九月 22, 2005, 08:20:25 上午
謝啦.我完全沒改,我試不行,都會把那行砍掉恢復原狀.
從 margin padding 下手,我也都有試過,但仍聞風不動.
既然是這2個,我再努力看看,感恩吶~


主題: Re: 亂碼的問題
作者: Stud九月 22, 2005, 09:18:35 上午
還是搞不定,頂多只能讓日曆往下移,但白色外框仍是一樣不動 :'(

Syntax:  margin: <value>
 
Possible Values:  [ <length> | <percentage> | auto ]{1,4}
 
Initial Value:  Not defined
 
Applies to:  All elements
 
Inherited:  No
 

The margin property sets the margins of an element by specifying between one and four values, where each value is a length, a percentage, or auto. Percentage values refer to the parent element's width. Negative margins are permitted.

If four values are given, they apply to top, right, bottom, and left margin, respectively. If one value is given, it applies to all sides. If two or three values are given, the missing values are taken from the opposite side.

Examples of margin declarations include:

BODY { margin: 5em }             /* all margins 5em */
P    { margin: 2em 4em }         /* top and bottom margins 2em,
                                    left and right margins 4em */
DIV  { margin: 1em 2em 3em 4em } /* top margin 1em,
                                    right margin 2em,
                                    bottom margin 3em,
                                    left margin 4em */
Note that adjoining vertical margins are collapsed to use the maximum of the margin values. Horizontal margins are not collapsed.

Using the margin property allows one to set all margins; alternatively, the properties margin-top, margin-bottom, margin-left, and margin-right may be used.

-------------------------------------------
Syntax:  padding: <value>
 
Possible Values:  [ <length> | <percentage> ]{1,4}
 
Initial Value:  0
 
Applies to:  All elements
 
Inherited:  No
 

The padding property is a shorthand for the padding-top, padding-right, padding-bottom, and padding-left properties.

An element's padding is the amount of space between the border and the content of the element. Between one and four values are given, where each value is either a length or a percentage. Percentage values refer to the parent element's width. Negative values are not permitted.

If four values are given, they apply to top, right, bottom, and left padding, respectively. If one value is given, it applies to all sides. If two or three values are given, the missing values are taken from the opposite side.

For example, the following rule sets the top padding to 2em, the right padding to 4em, the bottom padding to 5em, and the left padding to 4em:

BLOCKQUOTE { padding: 2em 4em 5em }
------------------------------------------


主題: Re: 亂碼的問題
作者: Stud九月 22, 2005, 09:23:07 上午
ok了.再重抓 spring 然後拿它的 css 覆蓋,總算行了.


主題: Re: 亂碼的問題
作者: james九月 22, 2005, 04:44:53 下午
ok了.再重抓 spring 然後拿它的 css 覆蓋,總算行了.

因此原因可能出在上傳不完全所造成的  :-)
下次建議你如果發現這樣的狀況,可以在把檔案重新傳一次喔 ^__^
恭喜你把問題解決了  :-)
James.


主題: Re: 亂碼的問題
作者: Stud九月 22, 2005, 08:25:13 下午
還好我都習慣把原始碼留下來.copy一份下來再改.
不過我比對了一下menu跟calendar部份,發現沒有差
別,所以問題應該出在別的地方,而我沒發現到,難怪
我改了半天就是沒動靜,浪費我一晚在那調來調去,
才想到用覆蓋的最快,主要是我認為我沒去改 css 所
以不會有錯,太大意了.


主題: Re: 亂碼的問題
作者: markwu九月 27, 2005, 10:42:41 上午
還好我都習慣把原始碼留下來.copy一份下來再改.
不過我比對了一下menu跟calendar部份,發現沒有差
別,所以問題應該出在別的地方,而我沒發現到,難怪
我改了半天就是沒動靜,浪費我一晚在那調來調去,
才想到用覆蓋的最快,主要是我認為我沒去改 css 所
以不會有錯,太大意了.

我建議你安裝 firefox 的 webdeveloper extension。他可以顯示網頁 css 的 clss 與 id 的位置。很方便喔。你這樣也比較有 idea 知道要改那邊。

Mark