插入西里尔文本时出现异常:字符串值不正确:第 1 行的列“”的“\xD1\x82\xD0\xB5\xD1\x81...”错误代码:1366
Getting exception on inserting Cyrillic text: Incorrect string value: '\xD1\x82\xD0\xB5\xD1\x81...' for column ' ' at row 1 Error Code: 1366
我有 MySQL table 列及其属性:
name: message
datatype: varchar(300)
default/expression: utf8
我试图在 table 中插入包含西里尔文文本的新数据。
这是我的 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'
如何解决异常?
您的数据库的默认字符集似乎是拉丁文或其他字符集,但它不存储西里尔文。
使用 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?
我有 MySQL table 列及其属性:
name: message
datatype: varchar(300)
default/expression: utf8
我试图在 table 中插入包含西里尔文文本的新数据。
这是我的 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'
如何解决异常?
您的数据库的默认字符集似乎是拉丁文或其他字符集,但它不存储西里尔文。
使用 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?