我試圖將MySQL 3.23.58數據庫移動到運行5.5.19的不同服務器。在MySQL導出/導入中丟失特殊字符
舊的具有latin1編碼指定,並且據我所知底層數據的確是老實拉丁。我已經嘗試了很多東西,主要是:
- 從終端輸出mysqldump和latin1編碼標誌。
- 在vim中編輯將「TYPE = InnoDB」更改爲「ENGINE = InnoDB」以實現MySQL 5的兼容性。
- 從終端導入到新的服務器。
瀏覽舊服務器(在續集的Mac Pro,或MySQL查詢在PC瀏覽器),特殊字符不會總是顯示正常,但他們在那裏(看着十六進制二進制)。 (在任何情況下,它都適用於PHP Web應用程序。)
瀏覽新服務器時,所有特殊字符似乎都被問號所代替。我知道如果指定了錯誤的編碼,有時候特殊字符會顯示爲問號(或 )。但是這些似乎是二進制級別的真正的直接編碼的ASCII問號。在出口/進口中,特殊字符(主要是曲線的引號和破折號)似乎已經丟失或被破壞。
任何想法爲什麼?
我知道有許多事情可能會出錯編碼,有很多不同的事情有錯。我已經閱讀了幾天(在這裏和其他地方),並嘗試設置所有正確的字符編碼,嘗試UTF-8,嘗試鑄造和轉換,嘗試過Sequel Pro的導出/導入(而不是終端)等。我很難過。
如果您導出爲SQL語句,您是否看到相同的問題?從你的問題,它聽起來像導出的文件是好的(你已經在十六進制編輯器),但這是導致問題的導入。我無法明白爲什麼SQL INSERT語句會失敗,如果它是磁盤上的純文本文件並且所有字符都以UTF-8或latin1表示。試一下你遇到的一條記錄。 – Brad
這是一個撇號(或右單引號)看起來像在VIM(截圖)導出的文件:http://cl.ly/1C2m0d1M2y0g1J1C3d0P - 一個<92>。那是一種vim有向圖嗎? (?Quadgraph)這裏並不匹配任何東西:http://vimdoc.sourceforge.net/htmldoc/digraph.html#digraph-table – Toph
而且一個破折號顯示爲<97>。 – Toph