[求救]MySQL 語系設定問題



贊助商連結


頁 : [1] 2

windata
2009-03-22, 11:28 PM
1.在網路上找到眼花,仍搞不懂該怎麼設定

character_set_client latin1 ← 為何
character_set_connection latin1 ← WHY?
character_set_database big5
character_set_filesystem binary
character_set_results latin1 ← I can't believe it ...
character_set_server utf8
character_set_system utf8
character_sets_dir C:\AppServ\MySQL\share\charsets\

導致每次 php 存取資料庫都需要 set names big5

2.更神奇的是,如果用 set names utf8 反而會完全沒有資料

稍微動一下 my.ini 也是搞不懂,也沒有達成什麼效果
基於亂改會死機的前提下,還是上來請教各位達人的專業 m(_._)m

贊助商連結


tvirus
2009-03-23, 04:05 AM
基本上
要用MySQL
在減少自己麻煩情況下
請拜倒在latin1下
那些my.ini or my.cnf(linux下)裡的character_set請全部拿掉
資料庫建立時也請不要刻意選擇編碼,建起來一樣會是latin1
但是


你丟BIG5 or UTF8資料進去不會有問題
也不用每次都要set name
直接寫,直接讀,萬事都OK
不過
千萬不要看到phpMyAdmin一片亂碼就昏頭
因為phpMyAdmin的基準為UTF8...

windata
2009-03-23, 03:54 PM
作業系統是 xp,採包好的 Appserv,所以沒有 cnf 的 ^^
到目前我仍沒有改過任何設定(包含 phpmyadmin / mysql 的 ini inf ... 之類的)

my.ini 裡面沒有任何 character_set

以預設環境
在 phpMyAdmin 建資料庫,資料表,新增資料,都一切順利
在 透過 php 將資料取出時
1.未設定 set names big5
結果會是

Resource id #5
日期 名稱 批號 數量
2.若設定 set names big5

Resource id #5
日期 名稱 批號 數量
2009-03-19 長 00050 10
2009-03-20 長 00051 10
2009-03-21 長 00051 5
2009-03-22 短 00052 30
3.若 set names utf8

Resource id #5
日期 名稱 批號 數量

透過網頁看到的

character_set_client latin1
character_set_connection latin1
character_set_database big5 ← 這個應該是在 phpMyAdmin 設定吧?(昨天有動過
character_set_filesystem binary
character_set_results latin1
character_set_server utf8
character_set_system utf8
而透過 cmd mysql 看到的是…
http://www.pczone.com.tw/attachment.php?attachmentid=17543&stc=1&d=1237794893

tvirus
2009-03-23, 06:18 PM
appserv內定是UTF8...
所以你還是要自己去改回來

Trust me
latin1的石柳裙比較好拜

pcboy
2009-03-23, 06:58 PM
你的 MySQL 是幾版
如果是5.x, 建議不要用 Latin1, 現在減少麻煩, 以後可能有麻煩

blueno
2009-03-23, 09:51 PM
可以在 my.ini加入這行..

default-character-set=utf8

這樣子在創建新的資料庫之後,連線校對都是utf8_general_ci
資料庫沒有設定 CHARSET 資料表,校對都會用 utf8_general_ci

舊資料在通信上可以考慮先匯出後..
創新資料庫再匯入,MySQL連線校對就會改變為utf8..
雖然下指令改會比較快,對指令不熟的也可以透過phpmyadmin來設定會比較簡單.

匯出的資料若無亂碼,再匯回去的時候可以編輯 sql檔案,
找標籤 CHARSET=Latin1 修改為 CHARSET=utf8.

以上比較土法煉鋼,不保證會不會正常,您可以開個新資料庫測試看看... :D

windata
2009-03-29, 09:32 AM
舊資料庫沒去動它,現在是搞不定新的 6.x mysql

有個疑問
用 cmd 登入 mysql 看 charsets 與透過網頁看的結果是不一樣的

【CMD】
character_set_client big5
character_set_connection big5
character_set_results big5
【WEB】
character_set_client latin1
character_set_connection latin1
character_set_results latin1

================
我直接打開該頁 http://www.pczone.com.tw/attachment.php?attachmentid=17609&stc=1&d=1238290110
若是透過按鈕,將該頁的結果丟進 div.innerHTML http://www.pczone.com.tw/attachment.php?attachmentid=17611&stc=1&d=1238290110

第一張圖是有寫入預設語言 big5,若切換為 UTF8 檢視,將得第二張圖的結果
第二張圖也是有設預設語言 big5,但取得資料是用 UTF8 顯示

以上都是有使用 set names big5

pcboy
2009-03-29, 10:40 AM
網頁和 CMD 去看的是相同的資料庫嗎 ?

windata
2009-03-29, 12:04 PM
>網頁和 CMD 去看的是相同的資料庫嗎 ?
是的

由 CMD 取得資料,是正常可讀的

瀏覽器不管用 IE or Firefox 都是一樣的結果,所以目前只繼續用 FF 測試

tvirus
2009-03-29, 05:53 PM
有個疑問
用 cmd 登入 mysql 看 charsets 與透過網頁看的結果是不一樣的

【CMD】
character_set_client big5
character_set_connection big5
character_set_results big5
【WEB】
character_set_client latin1
character_set_connection latin1
character_set_results latin1

改完後,MySQL有沒有重新啟動(Restart)?