gpt4 book ai didi

mysql - 使用 INSERT 语句将代理项对插入 MySQL

转载 作者:行者123 更新时间:2023-11-28 23:12:14 26 4
gpt4 key购买 nike

我正在尝试插入代理对('𤭢',\uD852\uDF62,与来自 this exampleU+24B62 相同)到 MySQL

INSERT 带有未转义文字,由 this answer 建议:

INSERT INTO unicode_test (value) VALUES ('𤭢');
-- or
INSERT INTO unicode_test (value) VALUES (_utf8'𤭢');

失败了

Error Code: 1366. Incorrect string value: '\xF0\xA4\xAD\xA2' for column 'value' at row 1

(注意 \xF0\xA4\xAD\xA2 甚至不接近 \uD852\uDF62 的原始值)。

另一方面,两者

INSERT INTO unicode_test (value) VALUES (_utf16'𤭢');

INSERT INTO unicode_test (value) VALUES (_utf8mb4'𤭢');

成功,但插入的值与原来的不同。

我的数据库使用 utf8mb4 字符集,所以我认为它应该透明地处理代理项。

将非 BMP 字符插入 MySQL 的推荐方法是什么?

最佳答案

使用CHARACTER SET utf8mb4,而不是utf8utf16

参见 http://stackoverflow.com/questions/38363566/trouble-with-utf8-characters-what-i-see-is-not-what-i-stored 中的“最佳实践”听起来您没有连接参数(或 SET NAMES)。

您尝试过的应该有效:

INSERT INTO unicode_test (value) VALUES ('𤭢');

另一种方法是

INSERT INTO unicode_test (value) VALUES (UNHEX('F0A4ADA2'));

关于mysql - 使用 INSERT 语句将代理项对插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45458101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com