本文介紹了僅在某些情況下,MySQL才返回不正確的UTF8擴(kuò)展字符的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
注意:在下面的問(wèn)題中,您可能會(huì)看到?或塊而不是字符,這是因?yàn)槟鷽](méi)有適當(dāng)?shù)淖煮w。請(qǐng)忽略此操作。
背景
我有一個(gè)表,其中的數(shù)據(jù)結(jié)構(gòu)如下:
CREATE TABLE `decomposition_dup` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`structure` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`child` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `parent` (`parent`),
KEY `child` (`child`),
KEY `parent_2` (`parent`,`child`)
) ENGINE=InnoDB AUTO_INCREMENT=211929 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
和一些示例數(shù)據(jù):
INSERT INTO `decomposition_dup` (`id`, `parent`, `structure`, `child`) VALUES
(154647, '錦', 'a', '钅'),
(154648, '錦', 'a', '帛'),
(185775, '钅', 'd', '二'),
(185774, '钅', 'd', '?'),
(21195, '钅', 'd', '