gpt4 book ai didi

mysql - 当 SET NAMES 与表的字符集不匹配时会发生什么?

转载 作者:行者123 更新时间:2023-11-29 05:10:26 25 4
gpt4 key购买 nike

我有一个数据库,其中的表设置为 CHARACTER SET=utf8mb4,但是我发现 mysql 连接 (SET NAMES) 是 latin1.

我的问题是:

  1. 这些数据会怎样? MySQL 是将其转换为 utf8mb4 来存储它,还是将数据存储为 latin1
  2. 如果我需要转换它,我应该连接为 SET NAMES latin1 以取出数据,转换它,然后放回去,还是连接为 utf8mb4提取数据?

最佳答案

数据存储在表中定义的字符集中,因此在您的情况下,所有数据都将存储在 utf8mb4 中。

每个与数据库的连接都使用一个字符集来发送和接收数据。该字符集可能不同,因此 mysql 在存储字符集和连接字符集之间进行转换。

所以,回答你的问题:

1) mysql 转换它。

2) 你不需要转换它。但是您需要确保,如果您使用 set names,您实际上是在使用您声明的字符集发送数据。

更多信息:http://dev.mysql.com/doc/refman/5.7/en/charset-connection.html

关于mysql - 当 SET NAMES 与表的字符集不匹配时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40239063/

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