乱码的前世今生

3.1 字符集和比较规则简介
  • 字符集简介

    • 字符集:用于描述某个字符范围的编码规则。包括字符映射和编码规则的定义。

    • 编码和解码:将字符映射成二进制数据的过程称为编码,反之则为解码。

  • 比较规则简介

    • 二进制比较规则:直接比较字符的二进制编码。

    • 非二进制比较规则:考虑大小写、特殊字符等,常用于现实中的字符集。

  • 常用字符集

    • ASCII:收录128个字符,包括空格、标点符号、数字、大小写字母和一些不可见字符。

    • ISO 8859-1(latin1):在ASCII基础上扩展了128个西欧常用字符。

    • GB2312:收录汉字、拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母等。

3.2 MySQL字符集和比较规则
  • 字符集

    • Server、Database、Table和Column级别的字符集:MySQL支持在不同级别设置字符集。

    • 默认字符集:服务器启动时可以通过配置文件或启动选项指定默认字符集。

  • 比较规则

    • 默认比较规则:每个字符集都有一个默认的比较规则,但可以在不同级别进行自定义。

  • 3.3 设置字符集和比较规则的命令

    查看当前字符集和比较规则:

    SHOW VARIABLES LIKE 'character_set_%';
    SHOW VARIABLES LIKE 'collation_%';

    设置字符集和比较规则:

    SET NAMES 'utf8mb4' COLLATE 'utf8mb4_general_ci';

    修改数据库或表的字符集和比较规则:

    ALTER DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;xxxxxxxxxx sql
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值