問題描述:Federo8系統中安裝了mysqlcc但開啟資料庫之後出現亂碼,但據我所知mysqlcc是支援GBK簡體中文的。而且在win下面是不會出現這個問題的。起初我懷疑是不是mysql的問題,mysql的多套字元集確實很容易造成資料庫亂碼。
為解決這個問題首先查看mysql系統變數,瞭解資料庫到底有哪些編碼對我們有影響。
character_set_client
character_set_connection
character_set_results
以上三種字元集對我們瀏覽資料庫,查詢資料庫有影響。character_set_client,這個是用戶端發送請求的編碼,character_set_connection 串連資料庫編碼,character_set_results 返回記錄集編碼。通常情況下解決亂碼的辦法set names ‘encoding’;其實就是上面三條語句的集合,但這個方法對我的問題沒有任何協助。
最終想到了OS作業系統編碼,因為我懷疑mysqlcc這個軟體使用的預設編碼就是作業系統編碼,而我目前使用的系統正是utf-8,所以資料瀏覽頁面無論我怎麼設定mysql都是沒用的,因為從gbk無法直接轉換到utf-8。不過好在Linux提供了對多語言編碼的選擇。重啟電腦選擇GB18030,好像Federo還沒有GBK編碼的選擇。進入系統發現除了個別在utf-8下建立的中文名檔案夾出現亂碼其他的比如mysqlcc查詢資料庫已經可以正常顯示了。
編碼問題確實比較麻煩,還是需要時間去實踐,找到其中的一般規律和原理,對於mysql的多語言編碼問題還是要清楚資料存放區的是什麼編碼,需要顯示什麼編碼,中間串連到mysql又是什麼編碼。有必要的話還是要仔細研究手冊中關於字元集的講解。
Linux下的MYSQL GUI用戶端暫時還沒有什麼比較好的推薦,這個mysqlcc也只是湊合一下因為作為開源項目他已經被mysqlAB叫停了不會在更新。如果你有什麼好的建議,可以向我推薦。