[問題] 請問文章有部份中文會產生�?的亂碼(已解決)

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

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
主題已鎖定
ronstem
星球普通子民
星球普通子民
文章: 5
註冊時間: 2006-05-11 12:08

[問題] 請問文章有部份中文會產生�?的亂碼(已解決)

文章 ronstem »

抱歉,我已經有先搜尋過,但找不到與我相同的情況,恕在下不才
這是連結http://firewing.cafe150.com/phpBB2/viewtopic.php?t=2請各位大大參詳
是部份中文的編碼有問題,真不知該如何下手,因為這是第一次架論壇,還請多指教

phpBB2:2.0.19
php:4.3.9
phpMyAdmin:2.6.2 pl1
MySQL:4.1.12

這是放在虛擬空間的資料改法
最後由 ronstem 於 2006-05-11 21:59 編輯,總共編輯了 3 次。
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

哈!你這個問題是因為你用 MySQL 4.1 以後的版本,把 utf8 轉 latin1 造成的。請搜尋 (站內 or Google) 'SET NAMES utf8'
ronstem
星球普通子民
星球普通子民
文章: 5
註冊時間: 2006-05-11 12:08

文章 ronstem »

我已經試了下面步驟,結果更糟,全部都亂碼,不知如何是好

開啟 ./includes/db.php

尋找
?>

在之前增加
$db->sql_query("SET NAMES utf8;");
$db->sql_query("SET CHARACTER_SET_CLIENT=utf8;");
$db->sql_query("SET CHARACTER_SET_RESULTS=utf8;");


要改什麼檔案的code?真的不知
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

你需要把 db 裡面的資料用 mysqldump (或是其他方法) 還原出來,再轉為 utf8 放回去。
ronstem
星球普通子民
星球普通子民
文章: 5
註冊時間: 2006-05-11 12:08

文章 ronstem »

chiouss 寫:你需要把 db 裡面的資料用 mysqldump (或是其他方法) 還原出來,再轉為 utf8 放回去。
感謝ch大,所提供的方法。這邊我用力的搜尋後,找到倉木麻衣大大,所提供的方法
請參考此串討論http://phpbb-tw.net/phpbb/viewtopic.php ... =mysqldump

將install/schemas/mysql_schema.sql裡的每一個CREATE TABLE最後加上ENGINE=MyISAM DEFAULT CHARSET=utf8
例如:
代碼:
CREATE TABLE phpbb_user_group (
group_id mediumint(8) DEFAULT '0' NOT NULL,
user_id mediumint(8) DEFAULT '0' NOT NULL,
user_pending tinyint(1),
KEY group_id (group_id),
KEY user_id (user_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

在install/install.php裡這句之前
代碼:
$sql_query = @fread(@fopen($dbms_schema, 'r'), @filesize($dbms_schema));

加上
代碼:
$sql_query = "ALTER DATABASE `$dbname` CHARACTER SET utf8";
if (!($result = $db->sql_query($sql_query)))
{
$error = $db->sql_error();

page_header($lang['Install'], '');
page_error($lang['Installer_Error'], $lang['Install_db_error'] . '<br />' . $error['message']);
page_footer();
exit;
}

目的是確認整個資料庫的編碼為utf8
修改includes/db.php, 在 ?>之前加上
代碼:
$db->sql_query("SET NAMES utf8;");
$db->sql_query("SET CHARACTER_SET_CLIENT=utf8;");
$db->sql_query("SET CHARACTER_SET_RESULTS=utf8;");

在全新安裝的系統之下, 上述的執行結果正常
不論是在phpbb裡觀看或是在phMyadmin(2.6.1 rc2)裡, 中文字都很正常, 用phpMyadmin輸出的結果也正常


~倉木麻衣~ 在 2006-02-25 02:24 作了第 1 次修改

順便附上用好的網址http://firewing.cafe150.com/phpBB2/viewtopic.php?t=2供參考(真的沒有亂碼了也,好感動歐 ^6^)[/url]
主題已鎖定

回到「phpBB 2 安裝與使用」