Я пытаюсь сохранить твит в моей таблице MYSQL. твит:
quiero que me escuches, no te burles no te rias, anoche tuve un sueño que te fuiste de mi vida 🎶🎶
Последние два символа являются "МНОГОЯЗЫЧНЫЕ МУЗЫКАЛЬНЫЕ ПРИМЕЧАНИЯ" (U + 1F3B6), для которых кодировка UTF-8 0xf09f8eb6
.
Поле tweet_text
в моей таблице закодировано в utf8mb4
. Но когда я пытаюсь сохранить твит в этом столбце, я получаю следующее сообщение об ошибке:
Неверное строковое значение: '\ xF0\x9F\x8E\xB6\xF0\x9F...' для столбца 'tweet_text' в строке 1.
Что происходит не так? Как я могу это исправить? Мне нужно также хранить несколько языков, и этот набор символов работает для всех языков, но не для специальных символов, таких как смайлики и эможи.
Это мой оператор 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' 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;