1. 程式人生 > >Mac下,MySQL資料庫中文亂碼的解決方法

Mac下,MySQL資料庫中文亂碼的解決方法

在Mac下安裝MySQL資料庫,作為本地資料庫使用。但向資料庫中匯入資料時一直中文亂碼,試了很多方法都沒有解決。終於在熬夜奮戰了近3個小時後,把問題解決了(雖然還是不明白原因細節)。先上圖:
匯入中文資料成功

解決方案:匯入時,選擇GBK格式。(總的來講,有點瞎貓碰上死耗子,歪打正著的解決了。不知道中間的哪一步改動影響了最後結果,甚至中間嘗試都是不需要的)

解決過程:
首先,我先參照網上的各種教程,試圖修改資料庫的編碼格式,但是各種修改嘗試N次後還是沒有成功——剛開始覺得是資料庫編碼格式造成的。

然後,我尋找檢視資料庫編碼方式的方法,找到一篇文章,講得很清楚(參考連結3),檢視後發現編碼格式都是utf8——想到navicat中是支援錄入中文的,只是匯入中文亂碼。

最後,從navicat匯入中文亂碼的原因查起,發現有篇文章描述的情況,跟我遇到的十分相似,即參考連結1,隨即嘗試了一下:set names gbk,然後選擇GBK格式匯入檔案,終於成功了!(^o^)/~

但隨後我發現,不管我set names 格式 如何設定,選擇GBK格式匯入,都不會再亂碼。所以最後問題雖然解決了,但還是沒有搞清楚詳細原因。希望有高手能指點一下。

所遇問題的詳細描述:

問題一:資料庫完全不支援中文,如下圖即使在視覺化工具navicat中直接敲入中文,儲存重新整理後,還是會出現“?”。
敲入中文:
敲入中文

敲入中文重新整理後:
敲入中文重新整理後

問題二:新建一個數據庫,並且將資料庫屬性設定為:utf8,之後便支援敲入中文了,如下設定:
新建utf8屬性的資料庫

建好utf8屬性的資料庫後,直接在navicat中敲入中文,還是支援的(解決問題的第一個小驚喜O(∩_∩)O~)
支援敲入中文

但是匯入資料時,中文還是會亂碼,如上圖中欄位cityname的其他值。

終於在費了九牛二虎之力後,有點糊里糊塗的解決了,O(∩_∩)O~