最佳答案
我试图存储在我的 MYSQL 表中的 tweet。 推特是:
我希望你能听我说话,不要胡言乱语,不要轻言放弃,每天晚上你都会做一个梦,这个梦是我生命中的一部分
最后两个字符都是 《多重音符》(U + 1 F3B6),其 UTF-8编码是 0xf09f8eb6
。
表中的 tweet_text
字段用 utf8mb4
编码。但是,当我试图将 tweet 存储在该列中时,会得到以下错误消息:
错误的字符串值: 第1行的“ tweet _ text”列为“ xF0 x9F x8E xB6 xF0 x9F...”。
出什么问题了?我该怎么补救?我还需要存储多种语言,这个字符集适用于所有语言,但不适用于像表情符号和表情符号这样的特殊字符。
这是我的 create table 语句:
CREATE TABLE `twitter_status_data` (
`unique_status_id` bigint(20) NOT NULL AUTO_INCREMENT,
`metadata_result_type` text CHARACTER SET utf8,
`created_at` text CHARACTER SET utf8 NOT NULL COMMENT 'UTC time when this Tweet was created.',
`id` bigint(20) unsigned NOT NULL COMMENT 'Unique tweet identifier',
`id_str` text CHARACTER SET utf8 NOT NULL,
`tweet_text` text COMMENT 'Actual UTF-8 text',
`user_id_str` text CHARACTER SET utf8,
`user_name` text COMMENT 'User''s name',
`user_screen_name` text COMMENT 'Twitter handle',
`coordinates` text CHARACTER SET utf8,
PRIMARY KEY (`unique_status_id`),
KEY `user_id_index` (`user_id`),
FULLTEXT KEY `tweet_text_index` (`tweet_text`)
) ENGINE=InnoDB AUTO_INCREMENT=82451 DEFAULT CHARSET=utf8mb4;