您在這裡

Drupal5.3可以中文化,發表文章呈現???

atsiv's 的頭像
atsiv 在 2007-12-11 (二) 02:31 發表

我在一個外國的免費空間安裝英文版Drupal 5.3 ,可以正常匯入本站中文化PO檔,外觀顯示都中文了,但是發表文章時中文會呈現???。
這種情況是否和資料庫的設定有關?
不知道如何解決?

也想知道@@出了什麼狀況
(我是部份可以顯示中文、部份是一大堆????)

我有兩個網站,都安裝了question
一個就會變成???,一個則正常顯示內容。真是一個頭兩個大呀!

補充一下訊息:
管理>日誌>狀態報告

狀態報告

在這裡你可以 Drupal 網站設定的簡要描述,以及任何被偵測到的問題。當你需要支援時,可以複製/貼上這些資訊給他人參考。
Drupal 5.3
GD 程式庫 bundled (2.0.34 compatible)
MySQL 資料庫 5.0.27
PHP 5.2.3
Unicode 程式庫 PHP Mbstring Extension
cron 維護工作 上一次執行是在 37 年 50 週 以前
你可以 手動執行 cron。
檔案系統 可寫入(公開的 下載模式)
網站伺服器 Apache/2.2.6 (Unix) mod_ssl/2.2.6 OpenSSL/0.9.8b DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635 mod_bwlimited/1.4
設定檔案 被保護
資料庫 schema 最新的

是不是我的伺服器環境不能運行 Drupal 5.3 呢?

cron 維護工作 上一次執行是在 37 年 50 週 以前

唔... 好神奇的時間啊~~
是翻譯有問題嗎?? 37年前.... 我都還沒出生說... Drupal應該也還不存在吧!

在 includes/database.mysql.inc 裡有一段...

/* On MySQL 4.1 and later, force UTF-8 */
if (version_compare(mysql_get_server_info(), '4.1.0', '>=')) {
mysql_query('SET NAMES "utf8"', $connection);
}

看起來,理論上應該會以utf8的方式來作資料的傳輸。
同樣建議去查一下 node_revisions 資料表的 body 和 teaser 欄位的"校對"屬性是不是 "utf8xxxx"...
如果是"latin"開頭的... 那表示設錯了... 資料存到資料庫裡的時候就亂掉了...

最近看書才知道的一件事情。
大部分歐美語系,是用latin(拉丁)的編碼來存資料,所以有些時候會預設用它作編碼設定值。

我只是一個撰碼員,靠寫程式過活。
自從 Drupal 在 4.7 版的時候知道他的存在,但是後來跳去其它程式語言很久沒回來。
變成 D5 比較熟,D6 知道一點,D7 還在學的狀況…

將 Database 的編碼改變,是不會對底下已存在的資料表是不會有影響。
這個編碼存在的價值,似乎只是為了在開新的資料表時,提供一個預設值作參考。
若沒有決定資料表的每一個欄位的校對模式(只有文字類型的才有校對模式可以選),則拿這個預設的編碼當編碼。

所以... 事後修改Database其是不會有什麼改變。

至於這個Database編碼還有沒有其它用途,我就不清楚了。

順帶提個東西,是在MySQL 4上面遇到的,我正要查詢"騎"這個字,
但是查出來的結果居然出現"騎"和"討"兩筆資料,讓我百思不得其解。
後來查了一下兩個字的Unicode... 發現 騎: 9A0E 和 討: 8A0E,似乎只有第一碼不相同。
想起MySQL的文字似乎是不分大小寫的,修改過欄位的屬性,才解決這個問題。

為什麼提到這個.... 因為上篇文章中用的編碼是 utf8_general_ci,其中ci指的是不分大小寫(好像是 case ignore 的縮寫)
若是遇到大小寫有差,在查詢的時候需要區分的時候,就應該把編碼改成 utf8_bin ,bin是指Binary,這樣就會視不同大小寫的為不同。

我只是一個撰碼員,靠寫程式過活。
自從 Drupal 在 4.7 版的時候知道他的存在,但是後來跳去其它程式語言很久沒回來。
變成 D5 比較熟,D6 知道一點,D7 還在學的狀況…