XOOPS正體中文延伸計畫
XOOPS 是一個高度可擴充、具物件導向、且易於使用的動態網站內容管理系統(CMS),採用 PHP 語言來設計。XOOPS 十分適合用於發展小型至大型的動態社群網站、內部 Intranet 網站、入口網站、並且可用來做為 WEB LOG 使用。
本站是 XOOPS 正體中文延伸計劃網站,以推廣 XOOPS 於正體中文環境的應用為宗旨。我們希望 XOOPS 的發展能深入而嚴謹、功能越來越強大、但安全性更佳,最重要的是能永久保持其積極而開放的特色(易取易用)。
在您開始使用本站資源前 請先詳看本站的免責聲明並且請您在發出提問前事先利用搜尋功能查詢是否已有解答;提問時也請注意盡量詳述問題狀況,如無法利用語意明確表達也請提出網址以及測試帳號。竭誠的歡迎每位有經驗可以回覆提問的網友多多協助幫忙解惑,在此感謝所有對 XOOPS 有貢獻的人。




(1) 2 »


[分享] 安裝 Xoops utf8 版本, 當然 Mysql 也要用 utf8 編碼囉!
會員四級
註冊日期:
2005/7/19 15:16
帖子: 106
等級: 9; EXP: 30
HP: 0 / 207
MP: 35 / 3115
各位下載了 Xoops utf8 版安裝後, 一定會發現資料庫儲存是
latin1_swedish_ci 的格式, 而不是 utf8_unicode_ci;
若你的資料庫是 Mysql 3.2x 的還沒關係, 但若是 Mysql 4.1x
的支援多國語言的, 那就會有影嚮了!

以下這個方法, 讓你的資料存入 MySQL 4.1x or 5.x 時,
全部都以 utf8 來儲存!

注意!!:
A. 當你要安裝新 module 時, 全部都要作第一步驟。
B. 升級新版 Xoops 時, 要確定第二步驟內三行指令還在。
不然就會出現問題! 如: 選 變成 口 , 而且 phpmyadmin
看到都是亂碼了!

開始吧!


1. \install\sql\mysql.structure.sql
在每一個 CREATE TABLE 的底下, 約 30 多個吧...
找到:
----------------
TYPE=MISAM;
----------------
改成:
----------------
TYPE=MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;
----------------

2. \class\database\mysqldatabase.php
找到 function connect($selectdb = true) 的最後一行
return true; 的上面加上以下三行
----------------
@mysql_query("SET NAMES utf8");
@mysql_query("SET CLIENT CHARACTER utf8");
@mysql_query("SET CLIENT RESULTS utf8");
----------------

這樣一來, phpmyadmin 裡, 連線校對選用 utf8_unicode_ci;
結果 OK, phpmyadmin 內看到的資料都是 utf8 編碼,
而且顯示完全正常, 不會有亂碼了!

我已試著安裝 Xoops 2.0.13 utf8 版之後, 確認沒亂碼,
在 phpmyadmin 內看到編碼都是 utf8 且顯示正常。
我把 Xoops 資料庫 dump 一份出來,
又把 Xoops 資料庫砍掉, 接著用 phpmyadmin 把資料倒回
檢查, 一切都都沒問題哦!!

試試看囉, 應可安心服用!

Stonez

2006/7/20 10:34
舉報 回頂部


Re: [分享] 安裝 Xoops utf8 版本, 當然 Mysql 也要用 utf8 編碼囉!
會員五級
註冊日期:
2005/7/15 11:40
帖子: 192
等級: 12; EXP: 90
HP: 0 / 297
MP: 64 / 4473
引用:

stonez 寫道:
各位下載了 Xoops utf8 版安裝後, 一定會發現資料庫儲存是
latin1_swedish_ci 的格式, 而不是 utf8_unicode_ci;
若你的資料庫是 Mysql 3.2x 的還沒關係, 但若是 Mysql 4.1x
的支援多國語言的, 那就會有影嚮了!

以下這個方法, 讓你的資料存入 MySQL 4.1x or 5.x 時,
全部都以 utf8 來儲存!

注意!!:
A. 當你要安裝新 module 時, 全部都要作第一步驟。
B. 升級新版 Xoops 時, 要確定第二步驟內三行指令還在。
不然就會出現問題! 如: 選 變成 口 , 而且 phpmyadmin
看到都是亂碼了!

開始吧!


1. \install\sql\mysql.structure.sql
在每一個 CREATE TABLE 的底下, 約 30 多個吧...
找到:
----------------
TYPE=MISAM;
----------------
改成:
----------------
TYPE=MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;
----------------

2. \class\database\mysqldatabase.php
找到 function connect($selectdb = true) 的最後一行
return true; 的上面加上以下三行
----------------
@mysql_query("SET NAMES utf8");
@mysql_query("SET CLIENT CHARACTER utf8");
@mysql_query("SET CLIENT RESULTS utf8");
----------------

這樣一來, phpmyadmin 裡, 連線校對選用 utf8_unicode_ci;
結果 OK, phpmyadmin 內看到的資料都是 utf8 編碼,
而且顯示完全正常, 不會有亂碼了!

我已試著安裝 Xoops 2.0.13 utf8 版之後, 確認沒亂碼,
在 phpmyadmin 內看到編碼都是 utf8 且顯示正常。
我把 Xoops 資料庫 dump 一份出來,
又把 Xoops 資料庫砍掉, 接著用 phpmyadmin 把資料倒回
檢查, 一切都都沒問題哦!!

試試看囉, 應可安心服用!


感謝分享!
Stonez

2006/7/20 12:44
舉報 回頂部


Re: [分享] 安裝 Xoops utf8 版本, 當然 Mysql 也要用 utf8 編碼囉!
會員四級
註冊日期:
2005/7/19 15:16
帖子: 106
等級: 9; EXP: 30
HP: 0 / 207
MP: 35 / 3115
Sorry,

這個方法會導致 smarty template_c 底下的 cache 檔無法正常產生!!!! 所以無法正常運作.....(試了兩三天才發現....)

有沒有人知道那裡需要修改, 讓 smarty cache 檔能正常產生?
其實我擔心的是, 若資料庫損毀時, 如何回復的問題..

請各位試試, 安裝 UTF8 版後, 用 phpmyadmin 把 Xoops DB 備份一份後, 砍掉, 再回復, 你會看到一大堆亂碼!!!!

除了有人提出以 Mysql 5.0 會正常外, 看來還要想想其它辦法!

請高手指導一下!

Stonez

2006/7/26 9:10

stonez 於 2006年07月26日 09:27:26
舉報 回頂部


Re: [分享] 安裝 Xoops utf8 版本, 當然 Mysql 也要用 utf8 編碼囉!
管理員
註冊日期:
2004/11/22 9:05
帖子: 1152
等級: 29; EXP: 69
HP: 143 / 717
MP: 384 / 12131
小弟從來不改MySQL的編碼...
就這樣用,管他語系是什麼
不管xoops是用big5或utf8都OK
差別只在於phpMyAdmin要修正一下而已。

各位可以直接拿底下網址中的教材,裡面有小弟修正過的phpMyAdmin
http://tad.tnc.edu.tw/modules/tadbook ... w.php?book_sn=14&bdsn=438

試過MySQL4.1、5.0都還挺正常的。

P.S. 安裝MySQL時,若是4.1以上的版本,預設編碼千萬別選 big5,使用預設值即可。

2006/7/26 10:04
舉報 回頂部


Re: [分享] 安裝 Xoops utf8 版本, 當然 Mysql 也要用 utf8 編碼囉!
會員五級
註冊日期:
2005/7/15 11:40
帖子: 192
等級: 12; EXP: 90
HP: 0 / 297
MP: 64 / 4473
我這個懶人,只直接升級 MySQL ,因為我覺得升級是遲早的事情,個人的Server 建議直接升級囉,。

2006/7/27 10:13
舉報 回頂部


Re: [分享] 安裝 Xoops utf8 版本, 當然 Mysql 也要用 utf8 編碼囉!
會員一級
註冊日期:
2006/6/26 16:43
帖子: 20
等級: 3; EXP: 20
HP: 0 / 55
MP: 6 / 675
我試過tad的方法...Wow! 真是快又簡單
我試過stonez的方法,在xoops 2.0.13和xoops 2.2.都有效.....
只是...... 還可以做的更好.........謝謝stonez的分享

Step1: 在phpMyAdmin建立新資料庫 校對collation(排序)選utf8_general_ci,因為繼承作用,只要在資料庫層設字型utf8_general_ci,以下的資料表層 每一個資料表,都會是utf8_general_ci(你不用30幾個資料表 手動設定)

Step2: 安裝xoops 時填入你在Step1預先建立新資料庫

MySQL標準語法是:SET NAMES 'utf8' 就是mysql_query("SET NAMES 'utf8'", $link_ID);
但看來MySQL也接受:SET NAMES utf8'就是mysql_query("SET NAMES utf8", $link_ID);


引用:
stonez 寫道:
2. \class\database\mysqldatabase.php
找到 function connect($selectdb = true) 的最後一行
return true; 的上面加上以下三行
----------------
@mysql_query("SET NAMES utf8");
@mysql_query("SET CLIENT CHARACTER utf8");
@mysql_query("SET CLIENT RESULTS utf8");

SET NAMES 'x'语句相当于下面三个语句:
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
加上以下一行就可以:
function connect($selectdb = true)
{
if (XOOPS_DB_PCONNECT == 1) {
$this->conn = @mysql_pconnect(XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS);
mysql_query("SET NAMES 'utf8'",$this->conn);
} else {
$this->conn = @mysql_connect(XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS);
mysql_query("SET NAMES 'utf8'",$this->conn);
}



想知道MySQL標準語法, Connection Character Sets and Collations MySQL 字型和連線校對(排序), 可以 看MySQL官方網頁翻譯http://seed100.com/php-mysql-101-ques ... l/charset-connection.html

2006/7/28 15:18
舉報 回頂部


Re: [分享] 安裝 Xoops utf8 版本, 當然 Mysql 也要用 utf8 編碼囉!
會員四級
註冊日期:
2005/7/19 15:16
帖子: 106
等級: 9; EXP: 30
HP: 0 / 207
MP: 35 / 3115
原來 SET NAMES x 替代了以下三句!
又學了一招!
引用:

SET NAMES 'x'语句相当于下面三个语句:
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;


引用:

Step1: 在phpMyAdmin建立新資料庫 校對collation(排序)選utf8_general_ci,因為繼承作用,只要在資料庫層設字型utf8_general_ci,以下的資料表層 每一個資料表,都會是utf8_general_ci(你不用30幾個資料表 手動設定)

這行看不懂....安裝時, 不是使用 Xoops installer 嗎?
這個要怎麼做? 還是在 CREATE DATABASE 那行做就好?

引用:

我試過stonez的方法,在xoops 2.0.13和xoops 2.2.都有效.....

我試的時候, template_c 底下的檔案無法產生耶....
你試的時候都 OK 嗎? 請試著安裝模組再更新模組看看..
再把 template_c 底下的檔砍掉...再更新模組看看..
如果都OK...那就真的沒問題了!

謝謝!

2006/8/9 15:22

stonez 於 2006年08月09日 15:41:01
舉報 回頂部


Re: [分享] 安裝 Xoops utf8 版本, 當然 Mysql 也要用 utf8 編碼囉!
會員一級
註冊日期:
2006/6/26 16:43
帖子: 20
等級: 3; EXP: 20
HP: 0 / 55
MP: 6 / 675
引用:
Step1: 在phpMyAdmin建立新資料庫,比如:transaction
校對collation(排序)選utf8_general_ci,
因為繼承作用,只要在資料庫層設字型utf8_general_ci,
以下的資料表層每一個資料表,都會是utf8_general_ci(你不用30幾個資料表 手動設定)

Step2:如下圖
step3: 如下圖
關於step4 就不用管了,你看的懂就好

Open in new window

Mr.stoneZ 祝你成功

2006/8/11 0:01
舉報 回頂部


Re: [分享] 安裝 Xoops utf8 版本, 當然 Mysql 也要用 utf8 編碼囉!
會員五級
註冊日期:
2006/2/20 12:45
來自 居住地
帖子: 225
等級: 14; EXP: 1
HP: 0 / 325
MP: 75 / 4318
引用:

tad 寫道:
小弟從來不改MySQL的編碼...
就這樣用,管他語系是什麼
不管xoops是用big5或utf8都OK
差別只在於phpMyAdmin要修正一下而已。

各位可以直接拿底下網址中的教材,裡面有小弟修正過的phpMyAdmin
http://tad.tnc.edu.tw/modules/tadbook ... w.php?book_sn=14&bdsn=438

試過MySQL4.1、5.0都還挺正常的。

P.S. 安裝MySQL時,若是4.1以上的版本,預設編碼千萬別選 big5,使用預設值即可。

在下才疏學淺,不甚了解
請問是說如果要讓資料庫支援utf8,只要照第四點做嗎?
謝謝


4.支援UTF
-8:370行「'utf-8'=>'utf8',」→「'utf-8'=>'latin1',

2006/8/14 14:30
_________________
如果本席侵犯到您之著作權,請通知本席,本席會盡速處理,謝謝合作mailto:ylc.txreformer@gmail.com

http://www.wretch.cc/blog/txreformer
舉報 回頂部


Re: [分享] 安裝 Xoops utf8 版本, 當然 Mysql 也要用 utf8 編碼囉!
會員一級
註冊日期:
2006/6/26 16:43
帖子: 20
等級: 3; EXP: 20
HP: 0 / 55
MP: 6 / 675
Open in new window

Wow!!!!!!!!!這篇文章竟有這麼多人來湊熱鬧,Great issue

其實亂碼問題是essential,那沒進來的是不是有更高明秘方 來決解亂碼問題?
tad的方法是很好………但是 你若是租用外面的web Hosting Server
外面的工程師肯聽你的聲音?去修改phpMyadmin
外面的工程師敢去修改phpMyadmin?會對別的客戶造成未知的影嚮?比如:
tad的方法:第2.3.4點 是確定的
如下:
2.開啟/phpMyAdmin/libraries/select_lang.lib.php
3.支援Big5:353行「'big5'=>'big5',」→「'big5'=>'latin1',」
4.支援UTF-8:370行「'utf-8'=>'utf8',」→「'utf-8'=>'latin1',」



第5點作用為何?
5.修正選單:321行「'zhtw-big5'」→「'zhtw-big5-utf-8'」

第6點又是什麼?
6.加入config.inc.php到/phpMyAdmin/底下
(可執行http://網址/~帳號/p281/scripts/setup.php來產生)


這些疑問 請 Mr.Tad 有空再解答

所以有時 被迫使用這方法: 去修改Xoops的程式碼 \class\database\mysqldatabase.php
mysql_query("SET NAMES 'utf8'",$this->conn);
只是這方法 好像有時會有點小問題………Try it

2006/8/14 17:11

Mishar 於 2006年08月14日 17:27:37
舉報 回頂部





可以查看帖子。
不可發帖。
不可回復。
不可編輯自己的帖子。
不可刪除自己的帖子。
不可發起投票調查。
不可在投票調查中投票。
不可上傳附件。
不可不經審核直接發帖。
不可使用主題類別。
不可使用HTML語法。
不可使用簽名檔。

[高級搜索]


使用者登入 記住我
帳號:
密碼:
站內搜尋
XOOPS 軟體下載

XOOPS2 升級檔:
2.0.3 升 2.0.5
2.0.4 升 2.0.5
2.0.5 升 2.0.6
2.0.6 升 2.0.7
2.0.7.x 升 2.0.9.2
2.0.9.2 升 2.0.10
2.0.10/11 升 2.0.12a
2.0.12a 升 2.0.13

從 2.2.x 或 2.0.13 都可直接利用 2.3.3b 中的升級程式升到 2.3.3b

2.3.3b正體中文版

即時留言簿
誰在線上
39人線上 (9人在瀏覽訪客討論留言)

會員: 3
遊客: 36

lip, domaldmac, Addison, 更多...
本網站以 XOOPS 2.3.3b 架設
佈景設計:Tad