The scenario is as follows:
This is the command executed:
pt-archiver --limit 5000 --txn-size 5000 --progress 5000 --statistics --bulk-insert --charset=utf8mb4 --no-check-charset --no-check-columns
Table character set:
CREATE TABLE `o_deposit_order` (
 `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL ,
 `merchant_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
 `payer_information` json DEFAULT (json_object()) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
The exception is that the data in the standard varchar fields in the table does not display garbled characters after archiving, but the data in the json fields does display garbled characters.
The source table data is as follows:
The sql is:
SELECT merchant_name, payer_information FROM o_deposit_order limit 3;
The data is:
`test商户  {"ip": "1.1.1.1", "os": "macOS 10.15.7)", "time": 3, "brand": "其他", "equipment": "电脑"}
The archive table is:
SQL:
SELECT merchant_name ,payer_information FROM o_deposit_order_history
Data:
test商户 {"ip": "1.1.1.1", "os": "æªç¥ç³»ç» æªç¥çæ¬", "time": 0, "brand": "å
¶ä»", "equipment": "æªç¥è®¾å¤", "homePlace": "ä¸å½-广ä¸ç-广å·å¸-çµä¿¡"}
pt tool version: 3.7.0
mysql version: gcp sql 8.0.42