歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 22, 2024, 11:15:32 下午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  開發  |  中文相關  |  mysql41與UTF8編碼,校對的問題 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: mysql41與UTF8編碼,校對的問題  (閱讀 29028 次)
ericj
新手見習
*
文章: 43



檢視個人資料 個人網站
« 於: 七月 21, 2005, 02:26:01 下午 »

要怎樣設定 mysql-41 才能夠讓 plog 存的中文字正常的出現在database裡 Orz

雖然網頁上看起來沒問題,但是看到資料庫裡面一堆亂碼心情就是不太好阿....

 MySQL 文字編碼:  UTF-8 Unicode (utf8)

 MySQL 連線校對:  utf8_general_ci

 table裡column的校對也設成 utf8_general_ci

為什麼網頁上的資料塞進DB後還是亂碼阿阿阿阿阿阿....

請問有人知道database這邊該怎麼設定嗎?我是用phpMyAdmin來管理MySQL的.
已記錄

Pentium4 1.5GHz + 512MB SDRAM + 200G vinum mirror RAID
FreeBSD6.1+lighttpd+php5-cgi+MySQL5.1
james
LifeType 中文發展團隊
超級會員
*****
文章: 823


哼!!你不說,誰會知道你做過那些修改呢!? (丟滑鼠~~)


檢視個人資料 個人網站
« 回覆文章 #1 於: 七月 22, 2005, 06:49:55 上午 »

引用自: ericj
要怎樣設定 mysql-41 才能夠讓 plog 存的中文字正常的出現在database裡 Orz

雖然網頁上看起來沒問題,但是看到資料庫裡面一堆亂碼心情就是不太好阿....

 MySQL 文字編碼:  UTF-8 Unicode (utf8)

 MySQL 連線校對:  utf8_general_ci

 table裡column的校對也設成 utf8_general_ci

為什麼網頁上的資料塞進DB後還是亂碼阿阿阿阿阿阿....

請問有人知道database這邊該怎麼設定嗎?我是用phpMyAdmin來管理MySQL的.

試試看這個方法,當你在用phpMyAdmin來看資料庫時,將browser的編碼手動改成UTF8應該就可以看到正常顯示的中文字了。

James.
已記錄

記得發問前,先使用搜尋功能找找看有沒相關的解答。
如果找不到,請依照如何在LifeType論壇發問來提問喔。
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #2 於: 七月 22, 2005, 03:33:26 下午 »

如 James 說的你的 phpmyadmin 的語系必須選繁體中文(UTF-8) 才行。假設你已經選了繁體中文 utf-8 語系,那麼另一個可能是你的 mysql defaultcharset 並非 utf-8 編碼。所以顯示出來是錯的!

Mark
已記錄

ericj
新手見習
*
文章: 43



檢視個人資料 個人網站
« 回覆文章 #3 於: 七月 24, 2005, 09:31:21 下午 »

引用自: markwu
如 James 說的你的 phpmyadmin 的語系必須選繁體中文(UTF-8) 才行。假設你已經選了繁體中文 utf-8 語系,那麼另一個可能是你的 mysql defaultcharset 並非 utf-8 編碼。所以顯示出來是錯的!

Mark


我找到問題的原因了   開懷大笑
答案在這篇文章就有提到了
http://forum.lifetype.org.tw/index.php?topic=47.0
mysql-4.1x 多了collation和charset的設定
除了connection要設定為utf-8外,每個欄位的校對(collation)也都要設成utf8_general_ci

另外光是這樣的設定plog預設存進mysql-4.1x 的中文在phpMyAdmin裡面看來還會是亂碼
但是讀取還是正常..

要解決的辦法就是像上面那篇文章說的.
修改class/database/adodb/drivers/adodb-mysql.inc.php
加上@mysql_query("SET NAMES 'utf8'", $this->_connectionID); 的判斷..
詳細的作法請看原作者的文章...

我只有做第一個的修正,增加了兩行SET NAMES的設定而已.

我的作業環境是
FreeBSD 4.11 RELEASE , apache2 + mod_php4.4.0.1 + plog 1.0.1 with ports , Mysql-server 4.1.13
已記錄

Pentium4 1.5GHz + 512MB SDRAM + 200G vinum mirror RAID
FreeBSD6.1+lighttpd+php5-cgi+MySQL5.1
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #4 於: 七月 24, 2005, 10:17:49 下午 »

引用自: ericj
引用自: markwu
如 James 說的你的 phpmyadmin 的語系必須選繁體中文(UTF-8) 才行。假設你已經選了繁體中文 utf-8 語系,那麼另一個可能是你的 mysql defaultcharset 並非 utf-8 編碼。所以顯示出來是錯的!

Mark


我找到問題的原因了   開懷大笑
答案在這篇文章就有提到了
http://forum.lifetype.org.tw/index.php?topic=47.0
mysql-4.1x 多了collation和charset的設定
除了connection要設定為utf-8外,每個欄位的校對(collation)也都要設成utf8_general_ci

另外光是這樣的設定plog預設存進mysql-4.1x 的中文在phpMyAdmin裡面看來還會是亂碼
但是讀取還是正常..

要解決的辦法就是像上面那篇文章說的.
修改class/database/adodb/drivers/adodb-mysql.inc.php
加上@mysql_query("SET NAMES 'utf8'", $this->_connectionID); 的判斷..
詳細的作法請看原作者的文章...

我只有做第一個的修正,增加了兩行SET NAMES的設定而已.

我的作業環境是
FreeBSD 4.11 RELEASE , apache2 + mod_php4.4.0.1 + plog 1.0.1 with ports , Mysql-server 4.1.13


mmm ..... 這個在 1.0 與 1.02 已經加入了。 1.0.1 時有人很頑皮的把 adodb 升級後忘了作 patch。

Mark
已記錄

dekuo
初級會員
**
文章: 51


檢視個人資料
« 回覆文章 #5 於: 一月 30, 2006, 10:14:46 下午 »

你們談的是資料庫用的是 mysql 4.1 以上, default charset = utf-8


我補充一下我的環境:

我的 LifeType 1.0.3 裝在 DreamHost, 所以自己沒辦法去動到 mysqld 的 default charset, 而 DreamHost 預設的是 MySQL Charset 是 latin1
要讓 phpmyadmin 可以正確看到中文,要在使用 wizard.php 安裝之前, 先在 phpmyadmin 的管理, 把資料庫校對改成 utf8_general_ci  , 改好之後再用 wizard.php 安裝, 裝出來的就是 Pure utf-8, 而且 phpmyadmin 看也都完全正常了 ...

相信很多人是用國外的主機, 都可以依照此法來設定

已記錄
頁: [1]
LifeType 中文開發論壇  |  開發  |  中文相關  |  mysql41與UTF8編碼,校對的問題 « 上篇主題 下篇主題 »
    前往: