美文网首页
MySQLのutf8真的是我们认识的utf8吗?

MySQLのutf8真的是我们认识的utf8吗?

作者: 一个好汉 | 来源:发表于2021-08-01 16:45 被阅读0次

    MySQL的“utf8”实际上不是真正的UTF-8

    所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”

    原因

    MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多
    “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。
    MySQL的“utf8mb4”是真正的“UTF-8”
    so in mysql

    utf8mb4 = UTF-8

    如何查看编辑数据库编码

    -- 查看数据库默认编码
    show variables like 'character_set_database';
    -- 查看建表语句 以及编码
    show create table member;
    -- 修改数据库的编码格式
    alter database test character set utf8mb4;
    -- 修改数据表格编码格式
    alter table member character set utf8mb4;
    

    查看创建表ddl语句 结果:

    member,"CREATE TABLE `member` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一标识',
      `name` varchar(20) CHARACTER SET utf8 NOT NULL COMMENT '名称',
      `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='成员表'"
    
    
    参考
    1. 永远不要在MySQL中使用utf8,改用utf8mb4
      MySQLのutf8真的是我们认识的utf8吗?

    相关文章

      网友评论

          本文标题:MySQLのutf8真的是我们认识的utf8吗?

          本文链接:https://www.haomeiwen.com/subject/jwvkpltx.html