В общем задача в базе хранить текст со всякими смайликами. Загуглил, установил кодировку с utf8 на utf8mb4. Все ок. Но вот появилась такая проблема, появился смайл: который не хочет писаться в БД. Вот этот нормально: ✅, а этот нет: *тут_должен_был_быть_смайл_но_он_вырезается_после_публикации* - ошибка incorrect value. В текстовом редакторе он тоже не отображается, а записывается как \uD83D \uDCCC .
Какую кодировку под него нужно использовать?
PS: О, после публикации вопроса тут он тоже не отображается.
Для правильного вопроса надо знать половину ответа
Какую именно кодировку вы поменяли - базы, таблицы или колонки?
\uD83D \uDCCC - это пара High surrogate / Low surrogate
1000016 + 40016 * (D83D16 - D80016) + (DCCC16 - DC0016) = 1F4CC16
Символ "Pushpin",
Изначально только таблицы, потом уже в поисках ответа всего: базы, таблицы и самой колонки - ошибка остается:
ALTER DATABASE dbname CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE table1 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table1 MODIFY description TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE `table1` (
`id` int(11) NOT NULL,
`type` int(2) NOT NULL,
`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`title` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`description` text COLLATE utf8mb4_unicode_ci
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
А при INSERT\UPDATE ошбика: "[22001][1366] Data truncation: Incorrect string value: '\xF0\x9F\x93\x8C' for column 'description' at row 1". Строка только из этого символа.