gpt4 book ai didi

mysql - INSERT 值是否使用 SET NAMES、SET CHARACTER SET 编码?

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

使用 MySQL,我已将连接字符集设置为 UTF-8:

SET NAMES 'utf8mb4';
SET CHARACTER SET 'utf8mb4';

这样我就能以 UTF-8 格式返回所有内容,即使是具有 latin1_swedish_ci 排序规则的表(有一些)也是如此。

当我发送 UTF-8 INSERT 字符串以插入其中一个 latin1 表时,这些值会被编码为 latin1 吗?

最佳答案

首选:对“字符集”使用特定于编程语言的连接参数。

第二优先:SET NAMES utf8mb4; --(不需要引用)。

列/表上的CHARACTER SET独立此连接/SET NAMES

连接/SET NAMES 声明客户端 中的字节使用什么编码。 INSERT/SELECT 将在它和列/表声明之间进行转换,因此您的 utf8-latin1 观察。

“当我发送 UTF-8 INSERT 字符串以插入其中一个 latin1 表时,这些值会被编码为 latin1 吗?” -- 重申一下,您发送的字节必须根据SET NAMES 进行编码。如果可能,它们将在表中正确转换为 latin1。我说“如果可能”是因为中文、表情符号等不能转换为 latin1,因为 latin1 处理的字符集非常有限(只够西欧使用)。

关于mysql - INSERT 值是否使用 SET NAMES、SET CHARACTER SET 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38393399/

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