最近使用腳本文件向mysql插入數據(含中文)時,出現1366錯誤:
ERROR 1366 (HY000): Incorrect string value: '\xE8\x8B\xB1\xE5\xAF\xB8...' for column ... at row ...
出錯原因是客戶端的字符集與數據庫里的字符集不匹配。
網上查到的方法幾乎都是更改相應表的字符集:
mysql> ALTER TABLE ... CONVERT TO CHARACTER SET gbk COLLATE gbk_chinese_ci;
其實還有一種簡便解決方法,即直接設置客戶端的字符集:
mysql> set character_set_client=gbk
然后再執行腳本即正確完成。
PS:有同事提供了另一種方法,即將腳本文件以gbk編碼格式保存再執行,測試也有效。