MySQL字符集是“字符→二进制编码”的映射规则,决定文本存储方式与支持字符范围,并绑定校对规则用于比较排序;支持服务器、数据库、表、列四级设置,乱码主因是链路中各环节字符集不一致。

MySQL中的字符集,简单说就是一套“字符→二进制编码”的映射规则。它决定了数据库如何把文字(比如“张三”“Hello”“?”)存成字节,也决定了能存哪些字符。
计算机只认0和1,所有文字必须转成字节才能保存。字符集就定义了这个转换方式:
0xD6D0(2字节),在UTF8MB4里是0xE4B8AD(3字节)0x41(1字节),所以UTF8兼容ASCIIutf8(实际是utf8mb3)中不支持,必须用utf8mb4
字符集管“怎么存”,校对规则管“怎么比、怎么排”。没有校对规则,就无法做WHERE name = 'Alice'或ORDER BY title。
utf8mb4_general_ci:不区分大小写(A == a),排序快,适合通用场景utf8mb4_bin:按字节逐位比较(A ≠ a),适合密码、token等严格匹配utf8mb4_unicode_ci:遵循Unicode标准排序,对德语变音、法语重音等处理更准确MySQL允许在四个级别设置字符集和校对规则:服务器 → 数据库 → 表 → 列。下级不显式指定时,自动继承上级默认值。
SHOW VARIABLES LIKE 'character_set_server';
CREATE DATABASE db1 CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
name VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
从客户端输入,到连接、服务端存储、再到查询返回,每个环节的字符集都要对齐。常见断点包括:
SET NAMES utf8mb4)characterEncoding=utf8mb4
--default-character-set=utf8mb4
以上就是mysql中的字符集是什么意思_mysql字符集基础概念的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号