MySQL 字符集问题

发光驴子 2017-12-21 09:55:37
为什么MySQL utf-8 中文是占3个字节,但是我设置varchar3,可以存3个汉字呢?
...全文
189 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
祥子爱游戏 2017-12-25
  • 打赏
  • 举报
回复
关于是否需要计算数据库使用的空间数量的问题,在数据量比较大时候还是要比较靠谱的估计的。
发光驴子 2017-12-21
  • 打赏
  • 举报
回复
那么varchar N代表的字符数 不是字节数 ,那么我是不是就不用考虑字节的概念了呢?
rucypli 2017-12-21
  • 打赏
  • 举报
回复
varchar N代表的字符数 不是字节数
听雨停了 2017-12-21
  • 打赏
  • 举报
回复
MySql 5.0 以上的版本: 1、一个汉字占多少长度与编码有关: UTF-8:一个汉字 = 3个字节,英文是一个字节 GBK: 一个汉字 = 2个字节,英文是一个字节 2、varchar(n) 表示n个字符,无论汉字和英文,MySql都能存入 n 个字符,仅实际字节长度有所区别。
听雨停了 2017-12-21
  • 打赏
  • 举报
回复
sql server中varchar(n)代表的才是字节数
引用 3 楼 jitunei2202 的回复:
那么varchar N代表的字符数 不是字节数 ,那么我是不是就不用考虑字节的概念了呢?
是的,这个字段最多存多少个字符就用varchar多少就行了。sql server的varchar才需要考虑字节。sql server的varchar(2)只能存一个汉字,因为一个汉字占两个字节。而varchar(2)只能存两个字节。mysql就不用考虑这个问题了
Rotel-刘志东 2017-12-21
  • 打赏
  • 举报
回复
varchar 3代表字符数,不是字节数

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧