3

我必须插入可能包含 '' 之类的字符的 Mysql 字符串。我试过这个:

ALTER TABLE `table_name`
DEFAULT CHARACTER SET utf8mb4,
MODIFY `colname` VARCHAR(200)
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;

当我插入'';

INSERT INTO `table_name` (`col_name`) VALUES ('');

我得到以下

SELECT * FROM `table_name`;

???

如何在选择语句中获得正确的值?

非常感谢。

4

1 回答 1

7

您还需要将连接编码设置utf8mb4为。这取决于你如何连接到 MySQL 如何做到这一点。SET NAMES utf8mb4是执行此操作的独立于 API 的 SQL 查询。

MySQL 调用utf8的是实际 UTF-8 的简化子集,仅涵盖 BMP(0000通过的字符FFFF)。utf8mb4实际的 UTF-8,它可以编码所有 Unicode 代码点。如果您的连接编码是utf8,那么所有数据都通过 UTF-8 的这个子集被压缩,并且您无法向 MySQL 发送或接收高于 BMP 的字符。

于 2013-10-07T11:52:38.913 回答