字符串值不正确:'\ xF0 \ x9F \ x92 \ x8F \ x0A#...对于mysql中的列?

时间:2015-09-30 08:56:12

标签: mysql unicode sql-insert symbols

我是MySQL的新手。 我有一个列在Unicode character表中存储MySQL

我有一个代码可以从twitter,facebook等获取帖子 将text/symbol '按'插入表中。

CREATE TABLE `tbl_unicode` (
  `_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `first_name` varchar(45) NOT NULL,
  `uninoce_Column` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`_id`)

) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8;


/* This query WONT work due to SYMBOL:   */
INSERT INTO `tbl_unicode`
  (`_id`,
  `first_name`,
  `uninoce_Column`)
VALUES
  (2,
  'rakesh',
  '最高の休日
#京都#宮津#天の橋立#');


/* This query WORKS FINE */
INSERT INTO `tbl_unicode`
  (`_id`,
  `first_name`,
  `uninoce_Column`)
VALUES
  (1,
  'shekhar',
  '最高の休日
#京都#宮津#天の橋立#');
enter code here

Live Demo in SQLFiddle

那么,我应该采用哪种数据类型或配置来使其工作。

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

  

CHARACTER SET utf8

MySQL的utf8字符集不是UTF-8。那太简单了!相反,它是UTF-8的有限子集,其中只支持代码指向U + 00FFFF,可以存储在三个UTF-8字节中。是U + 01F48F,所以它不适合表格的字符集。

真正的 UTF-8字符集在MySQL(5.5及更高版本)中称为utf8mb4

答案 1 :(得分:-2)

使用nvarchar作为表字段的数据类型。 varchar仅存储8位字符,而nvarchar也存储unicode字符。