2017-06-21 64 views
2

由於我的數據轉儲中的某個特殊中文字符會干擾該命令,因此我的導入查詢不會通過。它說:「#1366 - 錯誤的字符串值:'\ xDA ????? ...'列1中的'描述'」varchar數據類型不接受數據轉儲中的字符

描述字段當前是一個長度爲(5000) 。你認爲什麼導致這個問題?轉儲內容可能存在問題嗎?是否有與此varchar數據類型不兼容的特殊字符?有沒有解決方法或解決這個問題?

+0

某處存在錯誤的編碼:文件沒有您認爲的編碼,您的連接尚未使用正確的編碼建立,表/列設置爲錯誤的編碼...因爲您沒有提及什麼你應該使用的編碼,也許你只是用任何默認設置運行導入。 –

+0

該文件是我保存爲csv的xls文件。然後我使用phpmyadmin控制檯導入。因此我使用我認爲的默認編碼。我嘗試使用nvarchar,但沒有選項。我試圖編輯「整理」或該字段的編碼爲utf8mb4,但即時通訊不知道如果這將工作。 –

+0

解決編碼問題的一個簡單方法是使用HxD編輯器或類似方法打開文件,並手動去除bom字符,當然,這只是一次性的事情。否則,您必須解釋您使用的是哪種編碼 – MiloBellano

回答

0

只是對問題的更新。我實際上可以通過僅使用標準記事本將csv文件的字符編碼轉換爲utf8來修復它。我還將表和數據庫默認值更改爲utf8。之後,只對數據類型長度進行了少量修改,並且我能夠完全導入數據。謝謝你的建議。

1

您應該使用nvarchar而不是varchar,並確保您的輸入數據與數據庫使用相同的編碼。

編輯:只注意到了mysql標籤;你應該在列聲明中使用「字符集utf8」。

+0

在MySQL中'NVARCHAR'被認爲是'VARCHAR'的別名,帶'utf8'編碼(昨天剛學過,我沒有真正嘗試過)。 –

+0

我嘗試過使用phpmyadmin,但看起來nvarchar選項不可用。 –

相關問題