我想將一些數據從MSSQL移動到MySQL。當我運行wbcopytables.exe
關於MySQL連接字符集似乎是錯的,我得到當數據包含的表情符號圖標(http://apps.timwhitlock.info/unicode/inspect?s=%F0%9F%8C%A8%E2%98%83%EF%B8%8F)錯誤:Mysql數據遷移 - wbcopytables字符集
Incorrect string value: '\xF0\x9F\x8C\xA8\xE2\x98...' for column 'Value' at row 4
我的服務器,數據庫,表和列有charset=utf8mb4
和collation=utf8mb4_unicode_ci
。然而我可以插入這些表情符號到那張桌子上,我在旁邊創建了一個.NET應用程序,所以它不是模式/服務器設置的問題。這讓我認爲wbcopytables.exe
在連接上強制執行一些其他編碼(可能是utf8)。我試圖改變所有的MySQL變量執行utf8mb4在其他SO這些問題建議在my.ini的:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET collation_connection = utf8mb4_unicode_ci'
skip-character-set-client-handshake
編輯:下面是關於wbcopytables.exe本身的更多信息:https://dev.mysql.com/doc/workbench/en/wbcopytables.html
誰擁有'wbcopytables'?它的文檔在哪裏? –
我已經更新了這個問題。 'wbcopytables.exe'是MySQL Workbench附帶的CMD實用程序。 – andy250
.NET應用程序是否具有源數據正確編碼的唯一證據?您是否至少使用'NVARCHAR'列並將SQL Server連接編碼設置爲Unicode? –