[問題]UTF-8 成功但搜尋中文卻失敗
版主: 版主管理群
版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
[問題]UTF-8 成功但搜尋中文卻失敗
我的環境: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 格式。
但是,我發現輸入中文去搜尋,什麼都搜尋不到,僅能搜尋純英文而已。
我是否有遺漏的地方呢?
根據大家的描述,我下載了 phpBB 2.0.10 與繁中、簡中、日文的 language & template,經過 ConvertZ 的轉換,並且修改了各語系中 lang_main.php 中的預設語系均改為 UTF-8,現在,我可以成功的用 UTF-8 切換各個不同的語系,發表任意語言且均能正常顯示。檢查 MySQL 中的發言部分,均為 UTF-8 格式。
但是,我發現輸入中文去搜尋,什麼都搜尋不到,僅能搜尋純英文而已。
我是否有遺漏的地方呢?
不能幫你解決問題…\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的過程嗎?
不過想了解一下:
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的過程嗎?
自問自答.....
我去追蹤 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 就好。
爬文裡面大家似乎都沒有強調過這件事情喔!給大家做參考。
我去追蹤 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 就好。
爬文裡面大家似乎都沒有強調過這件事情喔!給大家做參考。
嗯!改完 UTF-8 後,我測試了這個部分,一如大家所說,這個地方會亂碼,我自己的解決法是這樣的,首先是 email 目錄下的 template(*.tpl) 不要去轉語系,維持原本 big-5 或其他 multi-byte 的內容不變,然後去修改語系檔中的 lang_main.php,找這一行:ayaya 寫:2.你寄出去的EMAIL,標題和內容會變亂碼嗎?
$lang['Welcome_subject'] = 'Welcome to %s'; // Welcome to my.com forums
這一行不要用任何 multi-byte 的內容,例如我上面這樣,那麼當 user 註冊時所發出的通知信,其信件的標題,以及信件內的第一行,就是純英文,就避開這個問題了。
我因為只有測試到註冊信這個部分,所以只有改這樣,相信其他通知 user 有 PM、訂閱的主題有人回覆等,都可以在 lang_main.php 裡面,找到對應的標題,改為純英文即可讓信件看起來不會有亂碼了。
http://phpbb-tw.net/phpbb/viewtopic.php?p=136417#136417DearHoney 寫:沒有,我並沒有將信件轉換成 HTML,還沒去研究這個部分該怎麼做。
何謂 dec 格式? 小弟不知道這是什麼~~
非官方外掛問題區公告: [必看]請配合發問格式及明確主題發問(2004 02/16更新)
竹貓星球發問規則:
http://phpbb-tw.net/phpbb/viewtopic.php?t=16149
請不要濫用 私人訊息 或是 MSN 問問題...你以為竹貓是架好看的阿
竹貓星球發問規則:
http://phpbb-tw.net/phpbb/viewtopic.php?t=16149
請不要濫用 私人訊息 或是 MSN 問問題...你以為竹貓是架好看的阿
~~~
小弟了解~~
小弟了解~~
非官方外掛問題區公告: [必看]請配合發問格式及明確主題發問(2004 02/16更新)
竹貓星球發問規則:
http://phpbb-tw.net/phpbb/viewtopic.php?t=16149
請不要濫用 私人訊息 或是 MSN 問問題...你以為竹貓是架好看的阿
竹貓星球發問規則:
http://phpbb-tw.net/phpbb/viewtopic.php?t=16149
請不要濫用 私人訊息 或是 MSN 問問題...你以為竹貓是架好看的阿