[問題]UTF-8 成功但搜尋中文卻失敗

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
DearHoney
星球普通子民
星球普通子民
文章: 21
註冊時間: 2002-06-10 01:44

[問題]UTF-8 成功但搜尋中文卻失敗

文章 DearHoney »

我的環境:Windows 2000 IIS + PHP 4.3.7 + MySQL 4.0.18。

根據大家的描述,我下載了 phpBB 2.0.10 與繁中、簡中、日文的 language & template,經過 ConvertZ 的轉換,並且修改了各語系中 lang_main.php 中的預設語系均改為 UTF-8,現在,我可以成功的用 UTF-8 切換各個不同的語系,發表任意語言且均能正常顯示。檢查 MySQL 中的發言部分,均為 UTF-8 格式。

但是,我發現輸入中文去搜尋,什麼都搜尋不到,僅能搜尋純英文而已。

我是否有遺漏的地方呢?
DearHoney
星球普通子民
星球普通子民
文章: 21
註冊時間: 2002-06-10 01:44

文章 DearHoney »

補充,我也嘗試過去修改 includes/functions_search.php,將其中 split_words 這個 function 中的給 comment 的段落給解除,也是一樣沒有幫助,仍然無法搜尋中文部分,均是什麼都找不到。
ayaya
星球公民
星球公民
文章: 128
註冊時間: 2004-09-04 18:27

文章 ayaya »

不能幫你解決問題…\r

不過想了解一下:

1.你有做多國語言修正嗎?

2.你寄出去的EMAIL,標題和內容會變亂碼嗎?

3.你想不想裝看看這個外掛?

下載:
http://www.ecardmax.com/richedit/phpbb/ ... ic.php?t=4

測試:
http://www.ecardmax.com/richedit/phpbb/ ... wtopic&f=1

4.可以說說你成功將論壇轉成UTF-8的過程嗎?
DearHoney
星球普通子民
星球普通子民
文章: 21
註冊時間: 2002-06-10 01:44

文章 DearHoney »

ayaya 寫:1.你有做多國語言修正嗎?
可能沒有,我再找找看大家之前的發言,看一下多國語言修正是什麼......
ayaya 寫:2.你寄出去的EMAIL,標題和內容會變亂碼嗎?
尚未測試過。
ayaya 寫:4.可以說說你成功將論壇轉成UTF-8的過程嗎?
就與好幾個討論串內講的是一樣的方式。
DearHoney
星球普通子民
星球普通子民
文章: 21
註冊時間: 2002-06-10 01:44

文章 DearHoney »

我爬了幾篇關於 UTF-8 的發言,根據大家所描述,徹底使用 UTF-8 之後,應該不用再去做兩年前大家在討論的「多國語言修正」,好像大家做好了 UTF-8 後,多國語言共存的問題就已經徹底解決了,可是我卻有中文搜尋失敗的問題。

我是去 phpBB 官方網站下載 2.0.10 與他的 language & template,是我下載的地方不對嗎?
DearHoney
星球普通子民
星球普通子民
文章: 21
註冊時間: 2002-06-10 01:44

文章 DearHoney »

自問自答.....

我去追蹤 search.php 中的執行程序,發現他會比對目前的網頁是否為 multi-byte 的語系,如果是這種語系的網頁他會用不同的 SQL 語法去搜尋文字,他內建了幾個 multi-byte 語系的編碼,是這麼寫的:

utf-8, big5,.....

但是,我在 lang_main.php 中,改成了這樣:

$lang['ENCODING'] = "UTF-8";

他利用 strstr 這個會區分大小寫的指令去比對,結果因為他內建的是小寫的 utf-8,但是我改的是大寫的 UTF-8,所以雖然一般網頁都能正常顯示,但是他在搜尋時,由於不認為現在是 multi-byte 的網頁語系,所以用英文語系的方式去搜尋,就搞砸了。

解決方法就是:

$lang['ENCODING']="utf-8";

寫成小寫的 utf-8 就好。

爬文裡面大家似乎都沒有強調過這件事情喔!給大家做參考。
DearHoney
星球普通子民
星球普通子民
文章: 21
註冊時間: 2002-06-10 01:44

文章 DearHoney »

ayaya 寫:2.你寄出去的EMAIL,標題和內容會變亂碼嗎?
嗯!改完 UTF-8 後,我測試了這個部分,一如大家所說,這個地方會亂碼,我自己的解決法是這樣的,首先是 email 目錄下的 template(*.tpl) 不要去轉語系,維持原本 big-5 或其他 multi-byte 的內容不變,然後去修改語系檔中的 lang_main.php,找這一行:

$lang['Welcome_subject'] = 'Welcome to %s'; // Welcome to my.com forums

這一行不要用任何 multi-byte 的內容,例如我上面這樣,那麼當 user 註冊時所發出的通知信,其信件的標題,以及信件內的第一行,就是純英文,就避開這個問題了。

我因為只有測試到註冊信這個部分,所以只有改這樣,相信其他通知 user 有 PM、訂閱的主題有人回覆等,都可以在 lang_main.php 裡面,找到對應的標題,改為純英文即可讓信件看起來不會有亂碼了。
DearHoney
星球普通子民
星球普通子民
文章: 21
註冊時間: 2002-06-10 01:44

文章 DearHoney »

不過想了一下,像我這種從骨子裡就使用 UTF-8 的情況,那種通知訂閱主題有人回覆的通知信件,應該會在信件內容提到主題的部分出現亂碼才是.....
ayaya
星球公民
星球公民
文章: 128
註冊時間: 2004-09-04 18:27

文章 ayaya »

感謝提醒 :-P

另外關於信件的問題

有人說「將信件傳送成html格式」的方法你試過了嗎?
DearHoney
星球普通子民
星球普通子民
文章: 21
註冊時間: 2002-06-10 01:44

文章 DearHoney »

沒有,我並沒有將信件轉換成 HTML,還沒去研究這個部分該怎麼做。
ayaya
星球公民
星球公民
文章: 128
註冊時間: 2004-09-04 18:27

文章 ayaya »

DearHoney 寫:沒有,我並沒有將信件轉換成 HTML,還沒去研究這個部分該怎麼做。
http://phpbb-tw.net/phpbb/viewtopic.php?p=136417#136417
ayaya
星球公民
星球公民
文章: 128
註冊時間: 2004-09-04 18:27

文章 ayaya »

我終於發現解決email亂碼的終極無敵霹靂大絕紹(一次解決標題和信件內容亂碼)

就是把「輸入的內容」先轉成「Dec格式」再貼上即可 :-P

不過還有{變數}會變成亂碼…\r

但也是用同樣的解決方法!!

信件內容變數的值多是取自後臺基本組態欄位的值\r

只要這些欄位也改用「Dec格式」輸入即可 :-P

(以上如果是中文字才要轉,英文和數字可免)
hpo14
竹貓忠實會員
竹貓忠實會員
文章: 414
註冊時間: 2003-05-10 16:37
來自: M Starbucks

文章 hpo14 »

何謂 dec 格式? 小弟不知道這是什麼~~
非官方外掛問題區公告: [必看]請配合發問格式及明確主題發問(2004 02/16更新)

竹貓星球發問規則:
http://phpbb-tw.net/phpbb/viewtopic.php?t=16149

請不要濫用 私人訊息 或是 MSN 問問題...你以為竹貓是架好看的阿
ayaya
星球公民
星球公民
文章: 128
註冊時間: 2004-09-04 18:27

文章 ayaya »

hpo14 寫:何謂 dec 格式? 小弟不知道這是什麼~~
你用ConvertZ轉碼時,輸出格式選「Dec」

轉出來的是字的原始碼,例如「竹貓星球」轉完如下:

竹貓星球


這讓我想到有些機密的交談曾用密碼寫,例如「竹貓星球」用\r

ZI EQRQ DSE KNA
hpo14
竹貓忠實會員
竹貓忠實會員
文章: 414
註冊時間: 2003-05-10 16:37
來自: M Starbucks

文章 hpo14 »

~~~

小弟了解~~
非官方外掛問題區公告: [必看]請配合發問格式及明確主題發問(2004 02/16更新)

竹貓星球發問規則:
http://phpbb-tw.net/phpbb/viewtopic.php?t=16149

請不要濫用 私人訊息 或是 MSN 問問題...你以為竹貓是架好看的阿
主題已鎖定

回到「phpBB 2 安裝與使用」