MySQL varbinary 字符串解释的默认字符集是什么?

What is the default charset for MySQL varbinary string interpretaion?

有时我会使用 varbinary 而不是 varchar,尤其是当我需要在 = 比较期间计算尾随空格并且对使用 [=14= 不感兴趣时] 运算符用于此目的。

选择时,我可以指定解码时使用哪个字符集,如下所示:
select convert(myvarbinary using utf8) from mytable

但大多数时候,我只是 select myvarbinary from mytable 而且效果很好。

我的问题是,在后者中,当我不指定字符集时,默认字符集来自哪里?在 varchar 上,它实际上是在每个 table 甚至每个列的基础上设置的,但对于 varbinary 则不是这样。

VARBINARY没有CHARACTER SET。所有比较都是逐位进行的。这样的比较有点像COLLATE ..._bin.

对于 大多数 应用程序,最好在 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci.

中完成所有操作

我能想到的 convert(myvarbinary using utf8) 的唯一原因是如果您在单个列中有多种编码。 听起来像一场噩梦。