引用 | 編輯
笑笑
2008-06-01 11:01 |
樓主
|
||
x0
試了好幾天的MySQL編碼問題終於搞定。 在利用Google大神搜尋相關資料後,在jjgod的"A MySQL 4.1 Story"這篇文章中,終於看到關於MySQL編碼的詳細說明。 現在終於比較清楚MySQL的運作狀況了。 我的結論:在MySQL 4.1中,不管是資料庫、表、欄位甚至client 和result的連結狀況都必需要設定編碼。 如果沒設定的話,就會以預設的編碼(Latin1)來傳遞所有的結果。 因此假設資料庫的編碼已經設定為utf8了,但是在client和result的編碼沒有設定,存入資料庫和資料庫中取出的資料也會出現錯誤(因為經過兩次latin1的編碼,會把Big5或是utf8的中文字破壞掉。) 因此如果打算以utf8來做為所有的資料呈現和儲存的話,可以在進行任何sel query之前加入: SET character_set_client='utf8' //設定客戶端編碼 SET character_set_connection='utf8' 設定連結時所用編碼 SET character_set_results='utf8' //設定傳回資料時所用編碼 這樣的設定方式就等於: SET NAMES 'utf8' 因此只要在寫query之前加上 mysql_query("SET NAMES 'utf8'"); 在進行資料的儲存和讀取動作就會正常了,如此一來在phpMyAdmin中也可以看到正常的中文顯示囉 ^_^ 轉貼自 http://stu.dhjh.tp.edu.tw/plog/post/3/847 x0
|