我有MySQL表及其列及其属性:
name: message
datatype: varchar(300)
default/expression: utf8
我尝试在包含Cyrillic文本的表中插入新数据。
这是我的SQL查询:
INSERT INTO db.log (id, info_id, user_id, timestamp, operation, message)
VALUES ('792','575', '35','2016-12-20 12:09:45','add',
'user@gmail.com created new line тест ')
我得到了例外:
1 row(s) affected, 1 warning(s): 1366 Incorrect string value: '\xD1\x82\xD0\xB5\xD1\x81...' for column 'message'
我该怎么做才能解决这个异常?
答案 0 :(得分:3)
似乎您的数据库的默认字符集可能是拉丁语或其他字符集,但它不存储西里尔字母。
使用ALTER DATABASE和ALTER TABLE命令确保正确的字符集:
ALTER DATABASE your_DB_name CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
在此处查看有关您的问题的更多信息: How to convert an entire MySQL database characterset and collation to UTF-8?