Я пытаюсь сохранить твит в своей таблице 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 `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;
utf8mb4
? - person eggyal   schedule 06.12.2013mysql_set_charset('utf8mb4')
. Для более новых API это зависит от API. - person deceze♦   schedule 06.12.2013COLUMNS
C WHERE table_schema = dream_twitter AND table_name = twitter_status_data AND column_name = tweet_text; - person db1   schedule 06.12.2013