Niepoprawna wartość ciągu: 'xF0 x9F x8E xB6 xF0 x9F…' MySQL
Próbuję zapisać tweeta w mojej tabeli MYSQL. Thećwierkać jest:
quiero que me escuches, no te burles no te rias, anoche tuve un sueño que te fuiste de mi vida 🎶🎶
Dwa ostatnie znaki są oba„WIELE NOTATEK MUZYCZNYCH” (U + 1F3B6), dla którego kodowanie UTF-8 jest0xf09f8eb6
.
Thetweet_text
pole w mojej tabeli jest zakodowaneutf8mb4
. Ale kiedy próbuję zapisać tweeta w tej kolumnie, otrzymuję następujący komunikat o błędzie:
Niepoprawna wartość ciągu: 'xF0 x9F x8E xB6 xF0 x9F ...' dla kolumny 'tweet_text' w wierszu 1.
Co jest nie tak? Jak mogę to naprawić? Muszę również przechowywać wiele języków, a ten zestaw znaków działa dla wszystkich języków, ale nie dla znaków specjalnych, takich jak emotikony i emotikony.
To jest moja instrukcja tworzenia tabeli:
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;