2013-05-04 60 views
1

我正在寫一個快速腳本來刪除數據庫中的重複項。我在開始之前從phpMyAdmin導出數據庫,以防萬一我把東西搞亂了,我注意到一些行中有些奇怪的字符。我想知道可能會造成這種情況?記錄是從由bar(「|」)分隔的明文文件上傳的。我不是上傳純文本文件的人,所以我不知道在上傳/導入之前原始文件是否被更改,但是我使用nothng而不是Notepad ++。我知道原始的平面文件永遠不會包含這樣的東西。導出數據庫時奇怪的charachters

而且,我做了一個SELECT * FROM records WHERE case_number =「A S「IOE「5ø.lÕ''éíÿ」的OoeqDþ'而事實證明,我的記錄,所以它不是我的文本編輯器。這些都是實際排在DB。

任何人都可以給您一個建議,以什麼這可能是,可能是什麼造成了它,我如何能夠解決?

我歡迎任何建議在所有。感謝您尋找。

編輯:

我的DB排序規則設置爲latin1_general_ci

enter image description here

enter image description here

+2

你有沒有試過把這個視爲UTF-8?編碼 - >以UTF-8編碼。如果SQL轉儲混亂了,並且mysql數據混亂了,最後可以嘗試更改數據庫中某些列的數據類型。 – 2013-05-04 02:54:24

+0

@DavidChen當用UTF-8查看時,正常的字符也會變成亂碼。 – 2013-05-04 03:07:36

+0

您的db歸類可能與'case_number','wild1'列歸類不同。如果他們有'varchar'類型 – Amir 2013-05-04 03:27:53

回答

1

這個問題似乎與是與被設置爲你的數據庫collation。例如,假設你上傳了一個完全正確的文件到MySQL中,但是如果說你的數據最終保存的字段的排序規則是在中文中。然後,當您嘗試檢索和呈現內容時,它將顯示編碼問題。

也嘗試查看PhpMyAdmin中的內容並查看它的外觀。

+0

我會說你在正確的軌道上,但是,3490到3497行看起來很好。之後的行看起來是空的,所以它可能從一開始就是一個初始加載錯誤。 – 2013-05-04 03:00:32

+0

我看到這個問題發生在隨機隊列中,當排序規則出現問題時。雖然我同意這可能是一個初始加載錯誤。 – raidenace 2013-05-04 03:01:35

+0

@Raidenace感謝您的建議。我對數據庫瞭解不多,但是我發現它目前設置爲latin1_general_ci。我應該換成ascii還是什麼?我發佈了截圖。 – 2013-05-04 03:04:53