为了账号安全,请及时绑定邮箱和手机立即绑定

请问下为什么会出现下面这种情况

http://img1.sycdn.imooc.com//5987d2600001a7c406140274.jpg

我的数据库是utf8编码的,它的中文不是3个字符的吗?这里length('少年')却显示了4

正在回答

1 回答

mysql中字符串长度有两个函数分别为char_length和length,前者可以计算unicode字符,包括中文等字符集的长度,而length函数用来计算普通字符的长度,他会把一个中文字符的长度计算为2或3.


在使用前先把编码改为 gbk

set  names 'gbk';

0 回复 有任何疑惑可以回复我~
#1

sadfiy 提问者

非常感谢!
2017-08-07 回复 有任何疑惑可以回复我~
#2

sadfiy 提问者

但是为什么是4个字符,utf8编码的中文不是各占3字符吗?
2017-08-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

请问下为什么会出现下面这种情况

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信